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