Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

How to play back media in a softphone

14 views
Skip to first unread message

alex-river

unread,
Jan 30, 2013, 4:33:35 AM1/30/13
to
Hello,

I am working on a project to develop a softphone and I need to play back media
in my softphone. I am using this sample program provided by Ozeki VoIP SIP SDK:
http://www.voip-sip-sdk.com/p_406-voip-media-handling-voip.html

So here is my project:

Playing an uncompressed .wav audio file, I needed to find and open one. Ozeki
VoIP SIP SDK provided me a useful tool WaveStreamPlayback that is for audio
playing in case of .wav files.
The WaveStreamPlayback is a MediaHandler that can be initialized by setting the
audio file to be played. I could do this by adding the filename (if it is in
the
same directory as the program) or the file path. I could also specify the
repetition, the packetization time and if it is necessary I could set that a
cache stream needs to be used.

In the sample program the audio file to play is specified by a textbox element.
In this textbox I could give the file path or filename to be played. I could
also use the Open button to pop up a browsing window where I could browse for
the proper audio file.
When the audio file is specified, I could start playing with pressing the Start
button on the GUI. If every parameter is set properly the playback will start

buttonStartPlayback.Text = "Pause";

1. WaveStreamPlayback.StartStreaming();
2. WaveStreamPlayback.IsStreaming = true;
3. }

The Start button is also used for pausing a started stream. The difference
between pausing and stopping a stream is that in the case of pausing, I could
restart the streaming from the exact point it has been paused. In case of
stopping the restart will be started from the beginning of the file.

1. buttonStartPlayback.Text = "Start";
2. WaveStreamPlayback.PauseStreaming();
3. WaveStreamPlayback.IsStreaming = false;

If I wanted to stop the audio streaming, I needed to press the stop button and
the following code will run

1. textBoxRecordingFile.Text = string.Empty;
2. if (WaveStreamPlayback != null)
3. {
4. WaveStreamPlayback.StopStreaming();
5. buttonStartPlayback.Text = "Start";
6. speaker.Stop();
7. connector.Disconnect(WaveStreamPlayback, speaker);
8. WaveStreamPlayback.Dispose();
9. WaveStreamPlayback = null;
10. }

The audio stream playing could also be used for playing an audio file into a
call. In this case I needed to connect the WaveStreamPlayback object to the
PhoneCallAudioSender object with the connector. In that case the
StartStreaming() method will play the audio file directly into the established
call.
You can find more useful information about other VoIP technologies on the
website.

Good developing!

Alex
0 new messages