AVPlayer を使用してさまざまなメディアを再生しています。プレーヤー インターフェイス全体を再設計し、出力レベルを制御する MPVolumeView を追加しました。スライダーまたは音量ボタン (yje 出力音量が変更されます) のいずれかを使用して問題なく動作しますが、ユーザーは音量が変化していることを視覚的に示すことはできません。Apple のビルトイン ビデオ アプリを使用している場合、ボタンを使用して出力音量を変更すると、現在の音量を示す素敵な 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 に答える