是否可以在通话期间播放音乐,以便合作伙伴可以听到它? Android的

时间:2013-05-19 10:00:48

标签: android android-mediaplayer phone-call

我正在尝试制作和app Call Cheater(最初为Symbian OS开发)

在接听者和来电者应该听到相同的声音或音乐的电话交谈中是否可以播放音乐?

如果是,我该如何实现?

7 个答案:

答案 0 :(得分:11)

您找不到执行此操作的应用,因为无法

文档明确指出(here):

  

注意:您只能将音频数据播放到标准输出   设备。目前,那是移动设备扬声器或蓝牙   耳机。您无法在对话音频期间播放声音文件   一个电话。

这一决定背后的原因可能与安全性有关:有几种情况可以将此功能用于缺点。

(OP与this非常相似,因此我基本上给出了相同的答案)

答案 1 :(得分:2)

两个答案,都是有效的,取决于你喜欢的草率:

1)不,目前无法将音频注入电话对话中。

2)是的,这是可能的。它也是一个丑陋,丑陋的kludge。打开手机的免提功能。创建媒体播放器,设置媒体源,将音量设置为1.0f(最高)并呼叫player.start()。如果手机上的麦克风和扬声器质量合理,则通话的另一方将听到音乐。他或她也会继续听到您说的任何声音,以及您附近的环境声和其他声音。

答案 2 :(得分:2)

我认为在一个案例中这是可能的

1.安卓设备中的一些原生音乐播放器处理此问题时,他们会在TelephonyManager.EXTRA_STATE_OFFHOOK(OFFHOOK STATE)中调用时限制音乐,因此无法使用本机播放器和其他播放器播放背景音乐喜欢" poweramp音乐专辑"

2.使用MediaPlayer类也是不可能的(文档中明确提到)

3.只有在一种情况下,如果你正在开发的自定义音乐播放器(没有使用MediaPlayer类)实现

AudioManager.OnAudioFocusChangeListener使用此功能即可获得 以下代码中的audiomanager的状态" focusChange = AUDIOFOCUS_LOSS_TRANSIENT"(此状态调用当音乐在后台播放任何来电时)此状态完全在开发人员手中是否播放或暂停音乐。根据您对问题的要求,您询问是否要在呼叫处于OFFHOOK状态时播放音乐时不要暂停在OFFHOOK状态播放音乐。这只有在耳机被禁用时才有可能

AudioManager am = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);

    OnAudioFocusChangeListener afChangeListener = new OnAudioFocusChangeListener() {
        public void onAudioFocusChange(int focusChange) {
            if (focusChange == AUDIOFOCUS_LOSS_TRANSIENT
                // Pause playback (during incoming call) 
            } else if (focusChange == AudioManager.AUDIOFOCUS_GAIN) {
                // Resume playback (incoming call ends)
            } else if (focusChange == AudioManager.AUDIOFOCUS_LOSS) {
                am.unregisterMediaButtonEventReceiver(RemoteControlReceiver);
                am.abandonAudioFocus(afChangeListener);
                // Stop playback (when any other app playing music  in that situation current app stop the audio)
            }
        }
    };

答案 3 :(得分:1)

不,这是不可能的。但是如果你想更多地挖掘它,那么你可以访问作者已经得出结论的Using Android phone as GSM Gateway for VoIP

  

目前的形式无法将Android用作GSM网关。即使在闪存自定义ROM之后,它们也依赖于专有的RIL(无线电接口层)固件。可以删除障碍1和2(API限制),因为源代码可供开源社区使用。但是,障碍3(专有RIL)依赖于硬件供应商。硬件供应商通常不会提供其设备驱动程序代码。

答案 4 :(得分:0)

Note: You can play back the audio data only to the standard output device.
Currently, that is the mobile device speaker or a Bluetooth headset. You 
cannot play sound files in the conversation audio during a call.

See official link 

http://developer.android.com/guide/topics/media/mediaplayer.html

答案 5 :(得分:0)

我认为这是不可能的。虽然我发现了一个名为PHONE MUSIC的谷歌播放应用程序声称:“因此,当有人让你停下来时,只需按下悬停的音符并开始播放音乐。或者在电话中有人与你一起播放音乐。” / p>

答案 6 :(得分:0)

是的,索尼ericssion xylophone w20是可能的。我在2010年有这款手机。但是这款手机还没有见过。

相关问题