我正在尝试将我在应用程序中播放的所有音频重定向到蓝牙扬声器。首先,我将蓝牙设备配对,然后我尝试向audioManager“说”,我播放的所有音频都应发送到蓝牙扬声器:
private final BluetoothAdapter _bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
public void pairBluetoothDevice(BluetoothDevice bluetoothDevice)
{
BluetoothSocket socket= bluetoothDevice.createInsecureRfcommSocketToServiceRecord( UUID.fromString( "0000111E-0000-1000-8000-00805F9B34FB" ) );
socket.connect();
_bluetoothAdapter.getProfileProxy( _appContext, _profileListener, BluetoothProfile.HEADSET );
}
private BluetoothProfile.ServiceListener _profileListener = new BluetoothProfile.ServiceListener()
{
public void onServiceConnected( int profile, BluetoothProfile proxy )
{
if ( profile == BluetoothProfile.HEADSET )
{
_bluetoothHeadset = (BluetoothHeadset) proxy;
_bluetoothHeadset.startVoiceRecognition(_device);
AudioManager audioManager = (AudioManager) _appContext.getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
audioManager.startBluetoothSco();
audioManager.setBluetoothScoOn(true);
audioManager.setSpeakerphoneOn(false);
}
}
public void onServiceDisconnected( int profile )
{
if ( profile == BluetoothProfile.HEADSET )
{
AudioManager audioManager= (AudioManager) _appContext.getSystemService(Context.AUDIO_SERVICE);
audioManager.setBluetoothScoOn(false);
audioManager.stopBluetoothSco();
audioManager.setMode(AudioManager.MODE_NORMAL);
audioManager.setSpeakerphoneOn(true);
_bluetoothHeadset.stopVoiceRecognition(_device);
_bluetoothHeadset= null;
}
}
};
当我播放音频时。。。
_soundPool.play( _soundPoolMap.get( index ), streamVolume, streamVolume, 1, 0, speed );
... 我什么也没听到。
感谢您的提示:-)
我找到了以下解决方法:我打开默认蓝牙设置,我可以在其中配对蓝牙扬声器,然后音频将自动发送到扬声器。
startActivity(new Intent(Settings.ACTION_BLUETOOTH_SETTINGS));
可以通过蓝牙传输音频吗?在我的研究中,我发现只有使用A2DP(高级音频分布配置文件)才有可能。每个Android设备都支持A2DP吗?如果没有,是否可以使用蓝牙在两个Android设备之间传输音频?请帮我理解这一点。 我浏览了以下链接: 在Android中通过蓝牙接收音频, 谷歌确认蓝牙音频流修复下一个版本的Android 4.2 如何通过蓝牙从另一台设备流式传输音频?
AndroidLollipop现在支持USB音频开箱即用。但是,我希望能够控制到USB音频设备的音频路由。Android SDK中是否有任何方法允许这种程度的控制?我尝试使用setForceUse,但这在不同的设备上是不一致的,而且似乎只适用于未连接USB音频设备的情况(更不用说SetForceUser没有USB选项)。 例如,我希望我的应用程序能够在普通手机耳机插孔上播放,但通过切换按钮,可以将
我对同一主题进行了研究,发现android设备是a2dp源,音频只能从a2dp源流式传输到a2dp接收器。A2dp接收器可以是蓝牙耳机或蓝牙扬声器。 但我的问题是,Android应用程序“蓝牙音乐播放器”是如何工作的? 它允许从一部手机到另一部手机进行流媒体传输。因此,在这种情况下,收听移动设备必须充当接收器。这怎么可能?他们是否使用其他配置文件而不是a2dp? 好吧,这可能是他们使用的不同配置文
我的音乐应用程序从外部应用程序启动,使用意向数据作为音乐文件。 我有mp3音频URI,类似这样 file:///storage/emulated/0/Music/Tamil/I(2014)/Ennodu Nee Irundhaal。mp3 如何从媒体获取音频详细信息。标题,媒体。相册,媒体_身份证件
我在使用媒体流式录制API,用于录制用户的麦克风。该代码在chrome windows上运行良好,但在android上,它只会在录制哔哔声后立即停止录制。 如何使API在android设备上工作 我是否遗漏了什么,或者这是Web音频API的错误? 代码如下: 然后我就用这些台词开始录音: 还有这个要停下来玩:
我有一个情况,我们有一个使用网络视图的Android应用程序。当用户导航到YouTube视频时,它开始播放(带有音频),然后用户使用设备的硬件开关锁定设备,它会继续播放音频。 当应用程序使用设备菜单发送到后台或退出应用程序时,不会发生这种情况。 有人知道为什么会发生这种情况以及如何阻止它吗? 编辑:我刚刚在这里发现了一个类似的、未回答的帖子:应用程序支持视频的后台播放、科尔多瓦问题、谷歌播放拒绝应