MPMoviePlayerController - Автообновление на подключенных наушниках - PullRequest
3 голосов
/ 10 февраля 2012

Возникла небольшая проблема с MPMoviePlayerController.Я играю фильм, и если пользователь отключает наушники от аудиоразъема, он приостанавливает воспроизведение фильма (стандартная функция iOS).

Однако, когда пользователь снова подключает наушники к гнезду.Фильм не возобновляется автоматически.

Есть что-то, чего мне не хватает?

Спасибо.

Ответы [ 2 ]

1 голос
/ 10 февраля 2012

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);
    }
1 голос
/ 10 февраля 2012

Когда вы вернете наушники в гнездо, ваше видео или музыка не будут воспроизводиться. Эта особенность iOS.

Вам необходимо программно определить, когда пользователь подключил наушники, а затем программно продолжить воспроизведение. Для определения состояния наушников я использую функцию «propListener» из образца aurioTouch (от Apple). https://developer.apple.com/library/ios/samplecode/aurioTouch/aurioTouch.zip

...