我已经让我的应用在后台播放音乐,我还通过调用 BeginReceivingRemoteControlEvents 成功地将它变成了媒体播放器。但是,永远不会调用 RemoteControlReceived 方法。Objective C 中的相同逻辑运行良好。任何样品或指南表示赞赏。
问问题
926 次
2 回答
0
您需要确保将其放置在 First responder 视图中,如果没有,则需要沿响应者链向上传递事件,直到它到达您的远程事件。尝试将远程控制事件想象为与键盘上的按键相同。例如,如果应用程序专注于一个按钮,并且您按下了一些键盘键,则不会发生任何事情,因为按钮没有监听按键。您的代码中也出现了类似的情况。尝试使用 BeginReceivingRemoteControlEvents 和方法覆盖来创建一个基本的、单一查看的项目以接收事件(不记得它是什么,RemoteEventReceived() 或类似的东西。)当您按下远程按钮时,这应该会被触发。
(抱歉我不能给出示例代码,暂时不在mac前面)
于 2012-03-07T05:40:11.780 回答
0
您可能想尝试使用稍后的机制来侦听远程控制事件。例如,如果您想听耳机按钮:
MPRemoteCommandCenter *commandCenter = [MPRemoteCommandCenter sharedCommandCenter];
[commandCenter.togglePlayPauseCommand addTargetWithHandler:^MPRemoteCommandHandlerStatus(MPRemoteCommandEvent * _Nonnull event) {
NSLog(@"toggle button pressed");
return MPRemoteCommandHandlerStatusSuccess;
}];
或者,如果您更喜欢使用方法而不是块:
[commandCenter.togglePlayPauseCommand addTarget:self action:@selector(toggleButtonAction)];
停止:
[commandCenter.togglePlayPauseCommand removeTarget:self];
或者:
[commandCenter.togglePlayPauseCommand removeTarget:self action:@selector(toggleButtonAction)];
您需要将其添加到文件的包含区域:
@import MediaPlayer;
仅当您是在后台播放的音频应用程序(即您必须在应用程序功能中设置该背景模式)时,才能在后台工作。
于 2015-09-03T10:47:19.857 回答