AVPlayer,MPVolumeView和Volume HUD

时间:2012-10-15 14:07:22

标签: ios avplayer mpvolumeview

我正在使用AVPlayer播放各种媒体。我重新设计了整个播放器界面,并添加了一个MPVolumeView来控制输出级别。 它可以正常工作,无论是使用滑块还是音量按钮(yje输出音量已更改),但用户无法看到音量正在变化。 当使用Apple的内置视频应用程序时,当您使用按钮更改输出音量时,会有一个很好的hud指示当前音量:如何使其显示? 感谢。

1 个答案:

答案 0 :(得分:0)

事实上,似乎VolumeView会阻止向系统发送通知。我不得不使用AudioSessionAddPropertyListener使它像这样工作

AudioSessionAddPropertyListener (kAudioSessionProperty_AudioRouteChange,
                                         audioRouteChangeListenerCallback,
                                         self);

和回调

// detecting outplugg of the iPhone
void audioRouteChangeListenerCallback (void                      *inClientData,
                                   AudioSessionPropertyID    inID,
                                   UInt32                    inDataSize,
                                   const void                *inData)
{
    CFDictionaryRef routeChangeDictionary = inData;

    CFNumberRef routeChangeReasonRef =
    CFDictionaryGetValue (routeChangeDictionary,
                      CFSTR (kAudioSession_AudioRouteChangeKey_Reason));

    SInt32 routeChangeReason;

    CFNumberGetValue (routeChangeReasonRef, kCFNumberSInt32Type, &routeChangeReason);

    if (routeChangeReason == kAudioSessionRouteChangeReason_OldDeviceUnavailable)
    {
        // Headset is unplugged..
        [(VideoPlayerViewController*)inClientData pause];
    }
}