2013-01-21 185 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