2013-01-21 188 views
3

我想开发一个应用程序,它播放背景音乐的一个电话,听见只对主叫方和听众。是否有任何已经可用的应用程序,在android中可能吗?背景音乐呼叫

+1

无,android应用程序不能干扰通话数据。你可以做的最好的事情是通过扬声器播放它,并希望它能起作用,但是电话使用的音频编解码器对音乐不友好。 –

+0

对不起,它没有。除非你卖手机。如果你是,你可以编辑Android本身,使其成为可能。但是应用程序没有这个能力。 –

回答

5

一些移动平台做支持在平台级这个功能(例如我用的是高通APQ8064,我已经相应地配置硬件编解码器的路线进行了测试,它的工作原理)。但是Android没有一个让你用它作为应用程序开发者的API,所以在没有根源的手机上,你无法做任何事情。
为什么没有API - 或者是否会有Android版本 - 我不知道。有可能是法律问题在一些市场,也可能仅仅是因为它被认为是一种半模糊的特点,他们没有看到一个巨大的需求,这是由相对少数的平台仅支持。

要考虑的另一件事是,你真的想在通话期间在背景中播放音乐?
音频将是8 kHz的单声道(或16 kHz的单声道,如果你在一个宽带通话中),并且它会与语音信号的其余部分一起被AMR编码(AMR是设计了一个低比特率编解码器用于编码语音)。换句话说,你通过语音电话上行链路播放的任何音乐听起来真的很糟糕。

UPDATE:对于基于APQ8064的电话,你有root权限,程序会是这样的(我不记得了我的头顶部的确切语法):

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"); 
+2

没有在谷歌播放链接谁做同样的事情.... HTTPS://play.google.com/store/apps/details ID = org.jefferyemanuel.phonemusic – Geethu

+0

那个应用程序的描述说:“在一些三星和新的索尼爱立信手机“。和“在大多数手机上你不能分享音频。” – Michael

+0

即使是某些手机,我该怎么办? – Geethu

1

目前还没有办法做到这一点的硬件不支持它。

+0

是否确定它不适用于应用程序? – Geethu

+1

是的。您无法通过上行链路发送音乐。无论是OS还是hardwars都支持它。您可以尝试在扬声器播放音乐。虽然我不确定后面那个。 – stinepike

+0

无论制造商如何,硬件都有能力。它的软件可能会或可能不会限制。 – Nick