0

iOS アプリ内でもバックグラウンド ミュージックを再生し続けたいです。ただし、アプリに入るとバックグラウンドミュージックがキャンセルされます。問題を AVCaptureSession のオーディオ部分に切り分けました。

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

2 つの方法で AudioSession を直後に設定しようとしました。

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

またはこのように:

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

しかし、どちらも機能しませんでした。

4

1 に答える 1

1

ここで説明されているように、明示的にセッション オブジェクトのインスタンスを作成し、MixWithOthers を設定しようとしましたか? 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;
于 2015-12-03T15:06:08.497 に答える