- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我成功地使我的应用程序能够在屏幕锁定后在后台播放音频和视频。但是,为了更好的用户体验,我想在锁定屏幕上显示正在运行的媒体的播放和暂停控件。在网上关注了几篇博客后,添加了以下代码:
@interface MyControllerClass () <UIGestureRecognizerDelegate, UIApplicationDelegate>
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
AVURLAsset *avAsset = [AVURLAsset URLAssetWithURL:url options:nil];
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:avAsset];
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback error:nil];
NSError *activationError = nil;
BOOL success = [[AVAudioSession sharedInstance] setActive: YES error: &activationError];
}
- (void)viewWillDisappear:(BOOL)animated {
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self resignFirstResponder];
[super viewWillDisappear:animated];
}
- (BOOL) canBecomeFirstResponder {
return YES;
}
- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent {
NSLog(@"received event %@",receivedEvent);
if (receivedEvent.type == UIEventTypeRemoteControl) {
switch (receivedEvent.subtype) {
case UIEventSubtypeRemoteControlTogglePlayPause: {
if ([self isVideoPlaying]) {
[self.avPlayer pause];
} else {
[self.avPlayer play];
}
break;
}
case UIEventSubtypeRemoteControlPlay: {
[self.avPlayer play];
break;
}
case UIEventSubtypeRemoteControlPause: {
[self.avPlayer pause];
break;
}
default:
break;
}
}
}
在 info.plist 中添加背景模式
即使我能够看到控制屏幕,但在单击按钮后我的应用程序没有收到任何用户事件 .
我相信我错过了一些非常明显的东西。任何指示都会有所帮助。
编辑 1:iOS - UIEventTypeRemoteControl events not received 中接受的答案表示您的应用必须是“正在播放”应用。我该怎么做?
最佳答案
我找到了问题的答案。我需要在 AppDelegate 中实现问题中的代码以接收事件,而不是在 ViewController 中实现。
关于ios - 无法接收 remoteControlReceivedWithEvent - objective-c - ios,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43973602/
这在我的 AppDelegate.swift 中不起作用: override func remoteControlReceivedWithEvent(event: UIEvent) { if
我正在尝试允许 Remote 或耳塞在应用处于后台或屏幕锁定时播放和暂停音频。所以在 viewDidLoad 中我有: [[UIApplication sharedApplication] begin
在我的应用中,我想实现像iPod音乐库一样的音乐播放,可以后台播放和远程控制。 我的应用程序是:主页中有几个项目的表格 View ,选择音乐项目将进入音乐 View 并显示用户下载的音乐。然后在此页面
在 .plist 中我添加了正常的:http://tinyurl.com/c7e9joy当 iPhone 被锁定或我在应用程序之外并打开远程按钮时,我可以在那里看到应用程序 Logo 和标题,但它们没
我正在开发一款可以播放 iPod 库中音乐的应用程序。我正在通过 MPMediaPlayerController 播放音乐,方法是从表中检索所选项目并将其传递给详细 View Controller :
我有一个主从应用程序。点击 MasterViewController 中 tableView 的每个单元格,导航到 DetailViewController,您可以在其中下载和播放音频文件。我在将 A
我想允许键盘上的控件在我的应用程序中工作。这些控件使用 Apple 的远程控制事件(beginReceivingRemoteControlEvents、endReceivingRemoteContro
我在使用 avplayer 控制 iPhone 控件时遇到问题。 如果我输入函数 - (void)remoteControlReceivedWithEvent:(UIEvent *)event 在负责
我成功地使我的应用程序能够在屏幕锁定后在后台播放音频和视频。但是,为了更好的用户体验,我想在锁定屏幕上显示正在运行的媒体的播放和暂停控件。在网上关注了几篇博客后,添加了以下代码: @interface
我很难弄清楚为什么在 iOS 7 中 Remote 不起作用。在 iOS 7 中,在锁定屏幕甚至控制中心中,按钮没有响应,有趣的是它在 iOS 6 上工作正常。 这是我使用的代码: - (void)r
我正在尝试实现 remoteControlWithEvent(在 Swift、iOS 9 中),但我的 App Delegate 出现错误。 我的 viewController 中有下面这段代码,一切
我在 iOS 控制中心音乐控件方面遇到问题在 iOS 11 更新之前,播放暂停按钮已启用并正常工作,正如预期的那样。 但是,在 iOS 11 中它停止工作了。经过研究,我发现在 IOS 11 中 re
我有一个在后台播放音频的应用程序。我正在尝试修复主屏幕(等)上的音频控件(播放/暂停)在 iOS 8.0+ 上不起作用但在 iOS 7.0 上运行良好的错误。我一直在努力找出问题所在,但一无所获。任何
我是一名优秀的程序员,十分优秀!