I would like to be able to play an audio recording over an open phone conversation. I.e., while the phone is connected (an outgoing call) a prerecorded audio file is played over the open phone connection. How can I do this?
No, the best that you would be able to accomplish is playing a sound through the speaker so the microphone can pick it up. There are no api's that can accomplish that.
@jim, Try using AudioTrack API in Stream mode. see below code snippet
AudioTrack track = new AudioTrack(AudioManager.STREAM_VOICE_CALL, mySampleRate, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, myBuffersize, AudioTrack.MODE_STREAM);
This should work
When i need to play something recorded over the phone, i usually turn on the phone speaker and press up the volume to max. Then people on the other end can hear it, but it works best on HD voice carriers (the audio sounds much better on the other end) :)
As per my experience, you can play your recorded audio in a music player app. Though the app stops playing when phone is connected, for most music apps, if you restart playback, it continues to play.
If you want the audio to be played automatically, may be you can use voicemail.
If you have a phone or secondary device that you can play the audio file on and both devices have auxillary ports, simply buy a cheap aux cable, cut it open, and plug both wires in the other way, so the phone thinks that the other device is a microphone. This works better that simply playing it through a speaker because there is much more clarity and no background noise.