Mih*_*hah 8 audio android phone-call
对于我的Android应用程序,我想在应答来自我的应用程序的呼叫后播放音频文件.应用程序将启动电话呼叫,一旦接收器接听电话,应用程序应开始播放录制的音频文件.
通过在Google中进行大量搜索,我发现对于无根设备而言,这不是直接可行的.
但任何替代这种或任何其他方式来实现这一目标?
我想实现这个,因为应用程序的功能是:如果App用户遇到麻烦,他只需按下应用程序中的帮助按钮,然后应用程序就会开始呼叫提到的联系人,并且应该在收到人员后立即播放录制的音频文件呼叫.
阅读步骤:
其中,处理这种1.Some的本地音乐播放器的Android设备,他们限制音乐时通话中TelephonyManager.EXTRA_STATE_OFFHOOK(摘机状态),所以没有打使用本地players.But背景音乐中的一些第三的方式派对apss喜欢"poweramp音乐palyer"这是可能的.
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)
}
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10941 次 |
| 最近记录: |