Я использую AVPlayer для воспроизведения различных медиафайлов. Я переработал весь интерфейс плеера и добавил MPVolumeView для управления выходным уровнем. Он прекрасно работает как с ползунком, так и с кнопками громкости (громкость вывода изменяется), но пользователь не получает визуального указания на изменение громкости. При использовании встроенного видеоприложения Apple, когда вы меняете громкость вывода с помощью кнопок, появляется красивый индикатор, показывающий текущую громкость: как я могу сделать так, чтобы он отображался? Спасибо.
AVPlayer, MPVolumeView и Volume HUD
Ответы (1)
На самом деле кажется, что 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];
}
}
person
Khal
schedule
03.12.2012
можешь вкратце описать. Я застрял на этом. что такое видеоплеервьюконтроллер?
- person venky; 30.05.2014
VideoPlayerViewController — это объект, для которого я вызываю обратный вызов регистра.
- person Khal; 02.06.2014