我正在使用AVAudioPlayer的一个实例来播放音频文件.该应用程序配置为在后台播放音频,并设置适当的音频会话.我也成功接收了遥控事件.
这是代码:
#import "ViewController.h"
#import <AVFoundation/AVFoundation.h>
@interface ViewController ()
@property (nonatomic) AVAudioPlayer *player;
@end
@implementation ViewController
@synthesize player;
- (BOOL)canBecomeFirstResponder { return YES; }
- (void)viewDidLoad
{
[super viewDidLoad];
// Turn on remote control event delivery
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
// Set ourselves as the first responder
[self becomeFirstResponder];
// Set the audio session
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *setCategoryError = nil;
BOOL success = [audioSession setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError];
NSError *activationError = nil;
success = [audioSession setActive:YES error:&activationError];
// Play an …Run Code Online (Sandbox Code Playgroud) 我使用AVAudioPlayer(不是AVPlayer)实现了一个音频播放器.我可以使用以下方法处理远程控制事件.它的工作原理相当好的,到目前为止,但是我看到两个以上subtypes这些事件:UIEventSubtypeRemoteControlEndSeekingForward和UIEventSubtypeRemoteControlEndSeekingBackward.
- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
//if it is a remote control event handle it correctly
if (event.type == UIEventTypeRemoteControl)
{
if (event.subtype == UIEventSubtypeRemoteControlPlay)
{
[self playAudio];
}
else if (event.subtype == UIEventSubtypeRemoteControlPause)
{
[self pauseAudio];
}
else if (event.subtype == UIEventSubtypeRemoteControlTogglePlayPause)
{
[self togglePlayPause];
}
else if (event.subtype == UIEventSubtypeRemoteControlBeginSeekingBackward)
{
[self rewindTheAudio]; //this method rewinds the audio by 15 seconds.
}
else if (event.subtype == UIEventSubtypeRemoteControlBeginSeekingForward)
{
[self …Run Code Online (Sandbox Code Playgroud) avaudioplayer ios avaudiosession background-audio mpnowplayinginfocenter