2016-08-18 41 views
8

Video & Ses yakalama uygulaması oluşturuyorum. Her kayıt yapmaya başladığımda, bluetooth hoparlörde çalınan müzik, telefonun hoparlöründe çalar. Uygulamadan çıktığımda, müzik bluetooth hoparlörde tekrar çalar.Sesi Bluetooth Hoparlörüne Yeniden Yönlendirin

try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions: [AVAudioSessionCategoryOptions.MixWithOthers, AVAudioSessionCategoryOptions.AllowBluetooth]) 

Ama bu işe yaramadı: Bunu çözmenin

Benim ilk girişimi böyle, audioSession için gerekli seçenekler sunmaktır. Bu yüzden düşündüğüm ikinci çözüm, müzik çıkışını yeniden bluetooth hoparlöre yeniden yönlendirmektir.

Bu konuda araştırılmış ve bu işlevi bulundu: audioSession.setOutputDataSource

Gerçekten parametreler geçirilecek bilmiyorum.

Ve video kaydını başlattığımda, telefonun veya kodumun bluetooth bağlantısını devre dışı bırakıp açmadığını veya oynatmanın yalnızca telefonun hoparlörüne yeniden yönlendirildiğinden emin değilim.

GÜNCELLEŞTIRME: Bu satırda şu şekilde konuşuyorum: // try audioSession.setMode(AVAudioSessionModeMoviePlayback) ve müzik biraz duraklayıp tekrar bluetooth hoparlörde oynatılıyor. Ama sorun şu ki, çekilen videoda ses yok.

GÜNCELLEME 2: Kodumu size verirseniz bu sorunun bir çözümü olur mu?

+0

Bluetooth üzerinden çalmayı veya bluetooth olan varsayılan çıkışı almayı deniyor musunuz? Örneğin, ne olursa olsun ya da sadece telefon/tablet farklı bir birincil çıkışla (AUX veya bluetooth gibi) bağlandığında bluethooth üzerinden oynamayı ister misiniz? –

cevap

0

Devam edip orijinal soruyu yanıtlarken bir fotoğraf çekeceğim.

func setOutputDataSource(_ dataSource: AVAudioSessionDataSourceDescription?)throws 

ParametrelerdataSource

ses oturumun çıkışı için veri kaynağı: Elma belgelerine itibaren ben bu gidin.

outError Girişte, bir hata nesnesine bir işaretçi. Bir hata oluşursa, işaretçi hatasını tanımlayan bir NSError nesnesine ayarlanır. Hata bilgisi istemiyorsanız, nil girin. here

Bu sayfa, anlamaya yardımcı olmalıdır AV Oturum veri kaynağı tanımı ne/fakat İçinde yazlık içinde döner o:

paylaşılan AVAudioSession nesneden veri kaynağı açıklamaları veya AVAudioSessionPortDescription nesneler elde

giriş ve çıkış portlarına karşılık gelir. Bazı aygıtlarda yalnızca yerleşik mikrofon bağlantı noktaları konum, yön ve polar desen özelliklerini destekler; Bir bağlantı noktası bu özellikleri desteklemiyorsa, dataSources özelliği değeri sıfırdır. here

Eğer hoparlöre uygulamanızdan rota müziği çalışıyorsun (? Müziği çalmaya olmasıdır) veya müzik başka bir uygulamanın geliyor ve bir çift çıkış istersiniz?

Hata kontrolü için, output data source gibi bir şey kullanarak hoparlörün hala kullanılabilir olduğundan emin olabilirsiniz. Eğer nill verirse (boş), veri kaynakları arasında geçiş yapamazsınız demektir.

Muhtemelen kullanıcının kayıt için izin vermesi gerektiğini de belirtmek gerekir, bununla birlikte, telefonun çaldığı sırada, sadece bir noktada kayıt yaptığınız gibi sorun olduğundan şüphe duyuyorum, hoparlör

+0

Bluetooth hoparlörü varsayılan olarak kullanmak istiyorum bağlıysa çıkış. Ya da hem telefonun hoparlörü hem de bluetooth hoparlör için ses çıkışı yapabiliyorsam, bu da iyi olur. –

+0

Her iki hoparlörde de oynayamayacaksınız, çıktı yönlendirmesi varolan yolu geçersiz kılar. SetOutputDataSrouce ile hiç şansınız oldu mu? Gerekli argümanlar mantıklı mı? –

+0

Gerçekten setOutputDataSource'unu anlamıyorum. Bunun örnek bir kullanımına ihtiyacım var. –

İlgili konular