我想开发一个可以播放背景音乐的应用程序,只有来电者和听众才能听到。是否有任何已经可用的应用程序,是否可以在android?
答案 0 :(得分:7)
某些移动平台确实在平台级别支持此功能(例如,我已经使用Qualcomm APQ8064对其进行了测试,其中我相应地配置了硬件编解码器路由,并且它可以工作)。但Android没有让你将它作为应用程序开发者使用的API,所以在非root用户手机上你可以做任何事情。
为什么没有它的API - 或者是否会有在即将推出的Android版本中 - 我不知道。某些市场可能存在法律问题,或者可能只是因为它被认为是一个半模糊的特征,他们看不到很大的需求,只有相对较少的平台支持。
另一件需要考虑的事情是,真的想要在通话期间在后台播放音乐吗?
音频将是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");
答案 1 :(得分:1)
目前没有办法这样做,因为硬件不支持它。