AudioStream


public class AudioStream
extends RtpStream

java.lang.Object
   ↳ android.net.rtp.RtpStream
     ↳ android.net.rtp.AudioStream


This class was deprecated in API level 31.
SipManager and associated classes are no longer supported and should not be used as the basis of future VOIP apps.

An AudioStream is a RtpStream which carrys audio payloads over Real-time Transport Protocol (RTP). Two different classes are developed in order to support various usages such as audio conferencing. An AudioStream represents a remote endpoint which consists of a network mapping and a configured AudioCodec. On the other side, An AudioGroup represents a local endpoint which mixes all the AudioStreams and optionally interacts with the speaker and the microphone at the same time. The simplest usage includes one for each endpoints. For other combinations, developers should be aware of the limitations described in AudioGroup.

An AudioStream becomes busy when it joins an AudioGroup. In this case most of the setter methods are disabled. This is designed to ease the task of managing native resources. One can always make an AudioStream leave its AudioGroup by calling join(android.net.rtp.AudioGroup) with null and put it back after the modification is done.

Using this class requires Manifest.permission.INTERNET permission.

Summary

Inherited constants

Public constructors

AudioStream(InetAddress address)

Creates an AudioStream on the given local address.

Public methods

AudioCodec getCodec()

Returns the AudioCodec, or null if it is not set.

int getDtmfType()

Returns the RTP payload type for dual-tone multi-frequency (DTMF) digits, or -1 if it is not enabled.

AudioGroup getGroup()

Returns the joined AudioGroup.

final boolean isBusy()

Returns true if the stream has already joined an AudioGroup.

void join(AudioGroup group)

Joins an AudioGroup.

void setCodec(AudioCodec codec)

Sets the AudioCodec.

void setDtmfType(int type)

Sets the RTP payload type for dual-tone multi-frequency (DTMF) digits.

Inherited methods

Public constructors

AudioStream

Added in API level 12
public AudioStream (InetAddress address)

Creates an AudioStream on the given local address. Note that the local port is assigned automatically to conform with RFC 3550.

Parameters
address InetAddress: The network address of the local host to bind to.

Throws
SocketException if the address cannot be bound or a problem occurs during binding.

Public methods

getCodec

Added in API level 12
public AudioCodec getCodec ()

Returns the AudioCodec, or null if it is not set.

Returns
AudioCodec

getDtmfType

Added in API level 12
public int getDtmfType ()

Returns the RTP payload type for dual-tone multi-frequency (DTMF) digits, or -1 if it is not enabled.

Returns
int

See also:

getGroup

Added in API level 12
public AudioGroup getGroup ()

Returns the joined AudioGroup.

Returns
AudioGroup

isBusy

Added in API level 12
public final boolean isBusy ()

Returns true if the stream has already joined an AudioGroup.

Returns
boolean

join

Added in API level 12
public void join (AudioGroup group)

Joins an AudioGroup. Each stream can join only one group at a time. The group can be changed by passing a different one or removed by calling this method with null.

Parameters
group AudioGroup: The AudioGroup to join or null to leave.

Throws
IllegalStateException if the stream is not properly configured.

See also:

setCodec

Added in API level 12
public void setCodec (AudioCodec codec)

Sets the AudioCodec.

Parameters
codec AudioCodec: The AudioCodec to be used.

Throws
IllegalArgumentException if its type is used by DTMF.
IllegalStateException if the stream is busy.

setDtmfType

Added in API level 12
public void setDtmfType (int type)

Sets the RTP payload type for dual-tone multi-frequency (DTMF) digits. The primary usage is to send digits to the remote gateway to perform certain tasks, such as second-stage dialing. According to RFC 2833, the RTP payload type for DTMF is assigned dynamically, so it must be in the range of 96 and 127. One can use -1 to disable DTMF and free up the previous assigned type. This method cannot be called when the stream already joined an AudioGroup.

Parameters
type int: The RTP payload type to be used or -1 to disable it.

Throws
IllegalArgumentException if the type is invalid or used by codec.
IllegalStateException if the stream is busy.