MPMoviePlayerController - 插入耳机时自动恢复
Posted
技术标签:
【中文标题】MPMoviePlayerController - 插入耳机时自动恢复【英文标题】:MPMoviePlayerController - Auto-Resume on headphone plugged in 【发布时间】:2012-02-10 10:46:59 【问题描述】:MPMoviePlayerController 有一点问题。我正在播放电影,如果用户从音频插孔中拔下耳机,它会暂停电影(标准 ios 功能)。
但是,当用户将耳机重新插入插孔时。电影不会自动恢复。
我有什么遗漏吗?
谢谢。
【问题讨论】:
【参考方案1】:MPMoviePlayerController - 自动暂停
监听 kAudioSessionProperty_AudioRouteChange 属性
#import <AudioToolbox/AudioToolbox.h>
void callbackHeadphone_func ( void *inClientData, AudioSessionPropertyID inID, UInt32 inDataSize, const void *inData )
if ( inID == kAudioSessionProperty_AudioRouteChange )
- (void) isHeadsetPluggedIn
UInt32 routeSize = sizeof (CFStringRef); CFStringRef route;
AudioSessionGetProperty (kAudioSessionProperty_AudioRoute, &routeSize, &route);
AudioSessionAddPropertyListener (kAudioSessionProperty_AudioRouteChange, callbackHeadphone_func, self);
/* Known values of route:
"Headset"
"Headphone"
"Speaker"
"SpeakerAndMicrophone"
"HeadphonesAndMicrophone"
"HeadsetInOut"
"ReceiverAndMicrophone"
"Lineout" */
NSString* routeStr = (NSString*)route;
NSLog(@"%@",routeStr);
【讨论】:
【参考方案2】:您何时将耳机放回插孔中,您的视频或音乐不会继续播放。 iOS的这个功能。
您需要以编程方式确定用户何时连接耳机,然后以编程方式继续播放。 为了确定耳机的状态,我使用了示例 aurioTouch(来自 Apple)的函数“propListener”。 https://developer.apple.com/library/ios/samplecode/aurioTouch/aurioTouch.zip
【讨论】:
以上是关于MPMoviePlayerController - 插入耳机时自动恢复的主要内容,如果未能解决你的问题,请参考以下文章
如何显示 MPMoviePlayerController 控件?
MPMoviePlayerController 隐藏 AirPlay 按钮
MPMoviePlayerController 上的专辑封面
MPMoviePlayerController 已弃用,现在怎么办?