MPMoviePlayerController - 插入耳机时自动恢复

时间:2012-02-10 10:47:00

标签: objective-c audio mpmovieplayercontroller

MPMoviePlayerController有点问题。我正在播放电影,如果用户从音频插孔拔下耳机,它会暂停电影(标准的iOS功能)。

然而,当用户将耳机插回插孔时。电影不会自动恢复。

我有什么遗失的东西吗?

感谢。

2 个答案:

答案 0 :(得分:1)

您何时将耳机重新插入插孔,您的视频或音乐无法继续播放。 iOS的这个功能。

您需要以编程方式确定用户何时连接耳机,然后以编程方式继续播放。 为了确定耳机的状态,我使用样本aurioTouch(来自Apple)的“propListener”功能。 https://developer.apple.com/library/ios/samplecode/aurioTouch/aurioTouch.zip

答案 1 :(得分: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);
    }