如何在语音通话期间发送预先录制的(wav)文件?

时间:2013-04-30 10:40:09

标签: android media-player telephonymanager android-audiomanager

我想开发一个应用程序,通过该应用程序,如果呼叫者呼叫您,呼叫应该在没有用户参与的情况下自动应答,并且呼叫者可以听到已经录制并保存的预先录制的语音。音频文件应该在。 wav format.I在谷歌搜索帮助,但我知道它在Android中是不可能的,但有一些Android应用程序具有相同的功能。所以我认为有一些可能性。如果问题是错的,请原谅我如果有人帮助我,我将不胜感激。我正在使用带有ADT插件的eclipse Helios。我已经尝试了以下代码,但它没有成功。如果有人知道答案,请帮助我。我用广播接收器来读取手机状态的变化。在CALL_STATE_OFFHOOK中,我写了下面的代码。

case TelephonyManager.CALL_STATE_OFFHOOK:
Toast.makeText(context, "Call Picked..", Toast.LENGTH_LONG) .show();
Log.d("received", "Call Picked....");
final MediaPlayer mPlayer = MediaPlayer.create(context, R.raw.music_file);
                    mPlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL);
                    mPlayer.prepareAsync();
                    mPlayer.start();
                    mPlayer.setOnErrorListener(new OnErrorListener() {

                        @Override
                        public boolean onError(MediaPlayer mp, int what, int extra) {
// TODO Auto-generated method 
mPlayer.reset();
                            return true;
                        }
                    });
                    AudioManager am=(AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
                    am.setMode(AudioManager.MODE_IN_CALL);
                    am.setSpeakerphoneOn(false);
                    am.setMicrophoneMute(true);
                    Log.d("in call","sent audio");
                    mPlayer.reset();
                    mPlayer.release();
                    break; 

2 个答案:

答案 0 :(得分:3)

Android硬件完全不支持将音频管道输入电话。

答案 1 :(得分:0)

DevIndia Infoway的“自动呼叫应答”在Playstore上。它的工作原理是在切换免提装置的同时播放mp3。所以对方会听到播放的内容(如果房间里还有其他噪音)。不是真正的火箭科学。