3

我想开发一个播放背景音乐的应用程序,并且只有呼叫者和听众才能听到。是否有任何已经可用的应用程序,是否可以在 android 中使用?

4

2 回答 2

7

一些移动平台确实在平台级别支持此功能(例如,我已经使用 Qualcomm APQ8064 对此进行了测试,我已经相应地配置了硬件编解码器路由,并且它可以工作)。但是 Android 没有 API 可以让你作为应用程序开发人员使用它,所以在非 root 手机上,你真的无能为力。
为什么没有它的 API——或者未来的 Android 版本中是否会有 API——我不知道。在某些市场中可能存在法律问题,或者可能只是因为它被认为是一种半晦涩的功能,他们没有看到很大的需求,并且仅由相对较少的平台支持。

另一件要考虑的事情是,你真的想在通话期间在后台播放音乐吗?
音频将是 8 kHz 单声道(如果您在进行宽带通话,则为 16 kHz 单声道),并且将与其他语音信号一起进行 AMR 编码(AMR 是一种低比特率编解码器,专为编码语音)。换句话说,您通过语音呼叫上行链路播放的任何音乐听起来都会非常非常糟糕。

更新:对于您具有 root 访问权限的基于 APQ8064 的手机,该过程将是这样的(我不记得我脑海中的确切语法):

audioManager.setParameters("incall_music_enabled=true");

// Execute the following using e.g. Runtime.exec()
amix 'SLIMBUS_4_RX Audio Mixer MultiMedia2' 1
aplay -Dhw:0,1 mono_8khz_data.pcm

// When you want to stop music playback, stop the aplay process, and then do
audioManager.setParameters("incall_music_enabled=false");
于 2013-01-21T06:31:15.983 回答
1

目前没有办法做到这一点,因为硬件不支持它。

于 2013-01-21T04:37:35.937 回答