0

我正在开发音乐播放器应用程序AVPlayer

现在我有要求,我想用Bluetooth设备控制我的播放器进行播放、暂停、下一个和返回等操作。

请指导我,有什么可能的解决方案。

4

1 回答 1

1

要控制远程事件,播放/控制音频的 viewController 必须是第一响应者,因此将其添加到 viewDidAppear

- (void)viewDidAppear:(BOOL)animated
{

[super viewDidAppear:animated];
//Make sure the system follows our playback status
[[AVAudioSession sharedInstance] setDelegate: self];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
}

然后你需要控制事件,所以添加这段代码,但添加到同一个 viewController 虽然讨论了最好的地方是 AppDelegate 但这只是让你开始:

- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
//if it is a remote control event handle it correctly
if (event.type == UIEventTypeRemoteControl) {
    if (event.subtype == UIEventSubtypeRemoteControlPlay) {
        [self play];
    } else if (event.subtype == UIEventSubtypeRemoteControlPause) {
         [self pause];
    } else if (event.subtype == UIEventSubtypeRemoteControlTogglePlayPause) {
         [self togglePlayPause];
    } else if (event.subtype == UIEventSubtypeRemoteControlNextTrack) {
            [self next];
        }
    } else if (event.subtype == UIEventSubtypeRemoteControlPreviousTrack) {

             [self previous];
    }
}

因此,播放暂停等方法与您用于控制 viewController 上的音频的方法相同,现在这仅在控制音频的 VC 可见时才有效,通过此选项的一个选项是具有共享实例 mediaQueue / playerController或者在 AppDelegate 甚至 UIWindow 的子类中进行。但这应该可以帮助您入门并希望对您有所帮助....如果您有任何问题,请告诉我

于 2013-09-09T22:13:37.807 回答