拔下耳机时 MPMoviePlayerViewController 停止播放

Posted

技术标签:

【中文标题】拔下耳机时 MPMoviePlayerViewController 停止播放【英文标题】:MPMoviePlayerViewController stops playback when unplugging headphones 【发布时间】:2010-10-19 09:22:25 【问题描述】:

我目前正在开发一个使用 MPMoviePlayerViewController 的网络电视应用程序。 MPMoviePlayer 在 iphone 上播放流媒体视频内容。

我遇到的问题是,一旦我拔下耳机(在看电视时),播放器就会停止。 由于我没有显示标准控件(上一个按钮、播放/暂停按钮、下一个按钮),而是我的自定义控件,因此除非切换到新频道,否则用户会被冻结的图片卡住..

有什么方法可以检测到因拔下耳机而导致的播放中断?

提前感谢您的提示和技巧,

山姆

【问题讨论】:

【参考方案1】:

我没有直接回答你的问题。但我认为 MPMoviePlayerPlaybackStateDidChangeNotification 足以解决您的问题。收到通知后,从电影播放器​​对象的播放状态属性中获取播放状态并采取适当的措施。

【讨论】:

【参考方案2】:

用一些代码详细说明接受的答案:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(videoPlaybackStateChanged:)
                                             name:MPMoviePlayerPlaybackStateDidChangeNotification
                                           object:moviePlayer];


- (void)videoPlaybackStateChanged :(NSNotification *)notification

    if (moviePlayer != nil && [moviePlayer playbackState] == MPMoviePlaybackStatePaused)
    
        [moviePlayer play];
    

【讨论】:

值得注意的是,影片结尾处[moviePlayer playbackState] 更改为MPMoviePlaybackStatePaused。因此,如果您不希望电影重复播放,则需要使用[moviePlayer currentPlaybackTime] != [moviePlayer duration] 检查它是否位于结尾。

以上是关于拔下耳机时 MPMoviePlayerViewController 停止播放的主要内容,如果未能解决你的问题,请参考以下文章

拔下耳机时暂停ExoPlayer

通话过程中拔下耳机时 AVAudioEngine 崩溃

用于拔下耳机的广播接收器

MPMoviePlayerController - 插入耳机时自动恢复

你能确定插入 iphone/ipad/ipod 耳机插孔的具体设备类型吗?

SKAction playSoundFileNamed 没有声音通过 iphone 扬声器