#iphone #ios #audio #sdk #system
#iPhone #iOS #Аудио #sdk #система
Вопрос:
Я использую системные звуковые службы для воспроизведения звука в своем приложении, оно отлично работает при использовании динамиков, наушников или даже автомобильного стереосистемного устройства dock USB. Однако, когда телефон подключен к автомобильной системе Bluetooth, звук воспроизводиться не будет.
Я полагаю, что, поскольку он подключен к устройству Bluetooth, системные звуковые службы попытаются отправить аудио через Bluetooth.
Кто-нибудь знает, как я могу предотвратить попытку передачи звука по аудиомаршруту через Bluetooth?
Вот код, который я использую:
CFURLRef soundFileURLRef;
SystemSoundID soundFileObject;
CFBundleRef mainBundle;
mainBundle = CFBundleGetMainBundle ();
// Get the URL to the sound file to play
soundFileURLRef = CFBundleCopyResourceURL (
mainBundle,
CFSTR ("Alert6"),
CFSTR ("aif"),
NULL
);
// Create a system sound object representing the sound file
AudioServicesCreateSystemSoundID (
soundFileURLRef,
amp;soundFileObject
);
AudioServicesPlaySystemSound (soundFileObject);
Есть идеи?
Ответ №1:
Вы можете переопределить вывод на внутренний динамик
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker; // lets the system sounds come out of the speaker
OSStatus err = AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(audioRouteOverride), amp;audioRouteOverride);
if (err != noErr) {
// handle error
}
Комментарии:
1. Привет, Кони. Я пробовал это раньше, и это не работает. Должен ли он также переопределять вывод звука при подключении наушников или просто Bluetooth?