1

我正在使用 AVPlayer 播放各种媒体。我重新设计了整个播放器界面,并添加了一个 MPVolumeView 来控制输出电平。它工作得很好,无论是使用滑块还是使用音量按钮(yje 输出音量已更改),但用户没有看到音量正在更改的视觉指示。使用 Apple 内置的 Video App 时,当您使用按钮更改输出音量时,有一个漂亮的 hud 指示当前音量:我怎样才能让它出现?谢谢。

4

1 回答 1

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];
    }
}
于 2012-12-03T14:32:12.767 回答