2015-12-03 3 views
0

Я бы хотел, чтобы фоновая музыка продолжалась, когда я вхожу в приложение iOS. Однако когда я вхожу в свое приложение, фоновая музыка отменяется. Я изолировал проблему в аудио части AVCaptureSession:Фоновая музыка отменена при записи аудио в AVCaptureSession

var audioDevice = AVCaptureDevice.DefaultDeviceWithMediaType(AVMediaType.Audio); 
var audioInput = AVCaptureDeviceInput.FromDevice(audioDevice); 
captureSession.AddInput(audioInput); 

Я попытался немедленно установив AudioSession после двух способов:

AudioSession.Initialize(); 
AudioSession.Category = AudioSessionCategory.AmbientSound; 
AudioSession.SetActive(true); 

или как это:

AudioSession.Initialize(); 
AudioSession.Category = AudioSessionCategory.MediaPlayback; 
AudioSession.OverrideCategoryMixWithOthers = true; 
AudioSession.SetActive(true); 

Но ни работал.

ответ

1

Вы пытались явно создать экземпляр объекта сеанса и установить MixWithOthers, как описано here? Я думаю, что эквивалентно Xamarin будет что-то вроде

AVAudioSession session = AVAudioSession.SharedInstance(); 
session.SetCategory(AVAudioSessionCategory.PlayAndRecord, AVAudioSessionCategoryOptions.MixWithOthers | AVAudioSessionCategoryOptions.DefaultToSpeaker); 

В качестве альтернативы, как это было предложено в ссылке выше, попробуйте установить его в вашем AppDelegate:

AudioSession.Category = AudioSessionCategory.PlayAndRecord; 
AudioSession.AudioShouldDuck = true; 
AudioSession.OverrideCategoryDefaultToSpeaker = true; 

..., а затем создать свой AVCaptureSession например:

AVCaptureSession session2 = new AVCaptureSession(); 
session2.AutomaticallyConfiguresApplicationAudioSession = false;