AVCaptureSession
kullanarak videoları sesli olarak kaydetmek istiyorum. Benim app aynı zamanda ses ile video oynattığından, bunun için AudioSessionCategory AVAudioSessionCategoryPlayAndRecord
gerekir.AVAudioSession AVAudioSessionCategoryPlayAndRecord glitch
Sesin varsayılan hoparlörden duyulmasını istiyorum ve diğer seslerle karıştırılmasını istiyorum. Bu yüzden AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionMixWithOthers
seçeneklerine ihtiyacım var.
diğer ses diğer uygulamadan ses net bir sesli aksaklık olduğunu çalarken ben aşağıdakileri yapın:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionMixWithOthers | AVAudioSessionCategoryOptionDefaultToSpeaker error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];
bu aksaklık kurtulmak için bir yol var mı?
AVAudioSessionRouteChangeReasonCategoryChange
tarafından belirtildiği gibi, mikrofon girişi olmaksızın mikrofon girişine bildirildiğinde ortaya çıkıyor.
Uygulama arka plana gittiğinde (ses oturumunu devre dışı bırakırken veya devre dışı bırakmadan) yapılandırma değişikliği (ve glitch) da oluşur. Ses oturumunu devre dışı bırakmadan arka plandan dönerken, AVCaptureSession
yapılandırması değiştirildiğinde, yani kamera önden arkaya geçtiğinde, hatalar oluşmaya başlar. Bu durumda ses yönlendirmesine dokunulmaz ve sadece ses oturumunu devre dışı bırakmadan arka plandan döndüğünde gerçekleşir. Rotanın değiştiğine dair bildirim iki kez ateşlenir. Mikrofonu bir kez devre dışı bırakmak ve tekrar etkinleştirmek için bir kez.
Bu davranış, Apple'ın AVCamManual örneğini indirerek kolayca yeniden üretilebilir olduğunu unutmayın. Bunu
ilk AVAudioSessionCategoryAmbient
ses kategorisini ayarlayın ve aktive: ilgili olabilir
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionMixWithOthers | AVAudioSessionCategoryOptionDefaultToSpeaker error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];
…
session.usesApplicationAudioSession = YES;
session.automaticallyConfiguresApplicationAudioSession = NO;
Diğer bazı garip bir şey,: viewDidLoad
AAPLCameraViewController.m
arasında aşağıdaki ekleyin sonra
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient withOptions:0 error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];
ve kategoriyi değiştir:
Seçenekler bayrağı rağmenbaşka ses çalma durur. Hata atılmadı.
Aynı sorunlarım var. Mektuba. Bu konuda haber var mı? – ancajic
Seçenek bayrağına rağmen sesin durduğu son örneğiniz için. Ses oturumu devre dışı bırakırsanız ses çalmaya devam eder ('[[AVAudioSession sharedInstance] setActive: NO withOptions: AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error: nil];') kategorisini ayarlamadan önce [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord withOptions: AVAudioSessionCategoryOptionMixWithOthers | AVAudioSessionCategoryOptionDefaultToSpeaker error: nil]; '. 'dan sonra yeniden etkinleştirin ('[[AVAudioSession sharedInstance] setActive: YES hatası: nil];') – ancajic
Aynı sorunları yaşayarak, her zaman PlayAndRecord kullanarak denediniz: http://stackoverflow.com/questions/35496563/avcapturesession-addinput-aksaklık-in-arka plan-ses neden olur. Ayrıca kayıt başladığında "Ortam" kategorisini değiştirerek çalışmayı denediniz: http://stackoverflow.com/questions/35615707/avaudiosession-setcategory-not-working. Metot, – Cbas