gpt4 book ai didi

ios - MPMoviePlayerViewController 锁屏播放控件不起作用

转载 作者:可可西里 更新时间:2023-11-01 04:53:59 25 4
gpt4 key购买 nike

我有一个具有以下设置的应用程序:

URMoviePlayerViewController 扩展了 MPMoviePlayerViewController

  • 已实现 remoteControlReceivedWithEvent:(UIEvent *)event 方法,以及:

    (void)viewDidLoad
    {
    [super viewDidLoad];
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    [self becomeFirstResponder];
    }

    (BOOL) canBecomeFirstResponder
    {
    return YES;
    }

URPlayerViewController 将 URMoviePlayerViewController 作为属性

    @property (nonatomic, strong) URMoviePlayerViewController *player;
  • 当调用播放一段音频时,播放器被初始化;如果已经初始化,则不会重新初始化播放器

  • URPlayerViewController 有一个 View ,它是一个自定义播放器,具有播放/暂停、下一个/上一个控件,在 viewDidLoad 方法中初始化并添加到 subview

URAppDelegate 将 URPlayerViewController 作为属性

    @property (nonatomic, strong) URPlayerViewController *playerViewController;
  • playerViewController 在应用程序 didFinishLaunchingWithOptions 中初始化

  • playerViewController 的 View 被添加到窗口 - 这样自定义播放器在整个应用程序中都是可见的

问题:

通常一切正常。有时在锁定屏幕上播放控件(播放/暂停/下一首/上一首)停止工作。 remoteControlReceivedWithEvent 永远不会被调用。我无法始终如一地重现这一点。

任何关于围绕回放调试这个问题的建议或想法都会很棒,因为我无法始终如一地重现这个问题。谢谢!

最佳答案

我认为您缺少以下方法,只需将其添加到现有代码中并接受答案(如果可行):

将beginReceivingRemoteControlEvents从viewdidload中移除,放到viewdidAppear中:

- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];

- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self resignFirstResponder];

关于ios - MPMoviePlayerViewController 锁屏播放控件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13387073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com