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