gpt4 book ai didi

ios - AVAudioSession : Some Bluetooth devices are not working properly on my App

转载 作者:搜寻专家 更新时间:2023-10-31 22:32:58 25 4
gpt4 key购买 nike

我正在使用 AVAudioSession 开发一个快速的音频/视频和文本聊天 iOS 应用程序。

每当我选择使用某些蓝牙设备时,设备上播放的声音不是 App 音频流。每当发送/接收消息时,它们只播放文本聊天库发送的系统声音。它不会在所有蓝牙设备上发生,在其中一些设备上一切正常。在内置麦克风和扬声器上,该应用程序也能正常工作。

以下是我类用于管理设备的最重要的方法:

class MyAudioSession
{
private var mAudioSession: AVAudioSession;

init!()
{
self.mAudioSession = AVAudioSession.sharedInstance();

do {
try self.mAudioSession.setActive(false);

try self.mAudioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions: .AllowBluetooth);
try self.mAudioSession.setMode(AVAudioSessionModeVideoChat);
try self.mAudioSession.setActive(true);
}
catch {
return nil;
}
}

func switchToDevice(device: AVAudioSessionPortDescription!) -> Bool
{
var ret = false;

if (device != nil) {
do {
try self.mAudioSession.setPreferredInput(device);

ret = true;
}
catch {
self.logSwitch(device, error: error);
}
}

return ret;
}
}

我想了解为什么我的应用程序仅在某些蓝牙设备上无法正常工作。这些相同的设备可以在我的 Cel 上的其他应用程序上正常工作。

我做了另一个测试:我为 MPVolumeView 更改了所有这些,并且出现了完全相同的问题,所以问题似乎出在音频播放器上。

谁能给我一个解决这个问题的建议?

谢谢。

最佳答案

乔格,虽然这可能不是最好的答案,但我已经能够克服奇怪的蓝牙问题。我的问题似乎与您的问题相似,因为我也在使用:

AVAudioSessionCategoryPlayAndRecord

这导致我在某些蓝牙设备上出现问题(不是全部,而是一些)。

我最后做的是将类别设置为:

AVAudioSessionCategoryPlayback

然后每当我需要记录时,我会将类别切换到:

AVAudioSessionCategoryRecord

然后在完成录制后返回回放。

这是当时我可以通过在不同输出(扬声器、耳机、蓝牙)之间切换获得一致结果的唯一方法。

希望对一些人有所帮助。猜测这是“AVAudioSessionCategoryPlayAndRecord”中的错误

关于ios - AVAudioSession : Some Bluetooth devices are not working properly on my App,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35671675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com