AudioStream
open class AudioStream : RtpStream
kotlin.Any | ||
↳ | android.net.rtp.RtpStream | |
↳ | android.net.rtp.AudioStream |
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(AudioGroup)
with null
and put it back after the modification is done.
Using this class requires android.Manifest.permission#INTERNET
permission.
Requires API level 12 (Android 3.1, Honeycomb)
Summary
Inherited constants | |
---|---|
Public constructors | |
---|---|
<init>(address: InetAddress!) Creates an AudioStream on the given local address. |
Public methods | |
---|---|
open AudioGroup! |
getGroup() Returns the joined |
open Unit |
setDtmfType(type: Int) Sets the RTP payload type for dual-tone multi-frequency (DTMF) digits. |
open Unit |
setCodec(codec: AudioCodec!) Sets the |
open AudioCodec! |
getCodec() Returns the |
open Int |
Returns the RTP payload type for dual-tone multi-frequency (DTMF) digits, or |
Boolean |
isBusy() Returns |
open Unit |
join(group: AudioGroup!) Joins an |
Inherited functions | |
---|---|
Public constructors
<init>
AudioStream(address: InetAddress!)
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. |
Exceptions | |
---|---|
SocketException |
if the address cannot be bound or a problem occurs during binding. |
Public methods
getGroup
open fun getGroup(): AudioGroup!
Returns the joined AudioGroup
.
Requires API level 12 (Android 3.1, Honeycomb)
setDtmfType
open fun setDtmfType(type: Int): Unit
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
.
Requires API level 12 (Android 3.1, Honeycomb)
Parameters | |
---|---|
type |
Int: The RTP payload type to be used or -1 to disable it. |
Exceptions | |
---|---|
IllegalArgumentException |
if the type is invalid or used by codec. |
IllegalStateException |
if the stream is busy. |
See Also
setCodec
open fun setCodec(codec: AudioCodec!): Unit
Sets the AudioCodec
.
Requires API level 12 (Android 3.1, Honeycomb)
Parameters | |
---|---|
codec |
AudioCodec!: The AudioCodec to be used. |
Exceptions | |
---|---|
IllegalArgumentException |
if its type is used by DTMF. |
IllegalStateException |
if the stream is busy. |
getCodec
open fun getCodec(): AudioCodec!
Returns the AudioCodec
, or null
if it is not set.
Requires API level 12 (Android 3.1, Honeycomb)
See Also
getDtmfType
open fun getDtmfType(): Int
Returns the RTP payload type for dual-tone multi-frequency (DTMF) digits, or -1
if it is not enabled.
Requires API level 12 (Android 3.1, Honeycomb)
See Also
isBusy
fun isBusy(): Boolean
Returns true
if the stream has already joined an AudioGroup
.
Requires API level 12 (Android 3.1, Honeycomb)
join
open fun join(group: AudioGroup!): Unit
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
.
Requires API level 12 (Android 3.1, Honeycomb)
Parameters | |
---|---|
group |
AudioGroup!: The AudioGroup to join or null to leave. |
Exceptions | |
---|---|
IllegalStateException |
if the stream is not properly configured. |
See Also