Class WebRTC
Definition
- Namespace:
- Tizen.Multimedia.Remoting
- Assembly:
- Tizen.Multimedia.Remoting.dll
- API Level:
- 9
Provides the ability to control WebRTC.
C#Copypublic class WebRTC : IDisposable
- Inheritance
-
System.ObjectWebRTC
- Implements
-
System.IDisposable
Constructors
Declaration
C#Copypublic WebRTC()
Exceptions
Type | Condition |
---|---|
UnauthorizedAccessException | Thrown when the permission is denied. |
System.NotSupportedException | The required feature is not supported. |
API Level: 9
Privilege Level: public
Privilege: http://tizen.org/privilege/internet
Feature: http://tizen.org/feature/network.wifihttp://tizen.org/feature/network.telephonyhttp://tizen.org/feature/network.ethernet
Properties
Declaration
C#Copypublic WebRTCIceConnectionState IceConnectionState { get; }
Property Value
Type | Description |
---|---|
WebRTCIceConnectionState | The current ICE connection state of the WebRTC. |
Exceptions
Type | Condition |
---|---|
ObjectDisposedException | The WebRTC has already been disposed. |
API Level: 9
Declaration
C#Copypublic WebRTCIceGatheringState IceGatheringState { get; }
Property Value
Type | Description |
---|---|
WebRTCIceGatheringState | The current Ice gathering state of the WebRTC. |
Exceptions
Type | Condition |
---|---|
ObjectDisposedException | The WebRTC has already been disposed. |
API Level: 9
Declaration
C#Copypublic IceTransportPolicy IceTransportPolicy { get; set; }
Property Value
Type | Description |
---|---|
IceTransportPolicy | The policy of ICE transport |
Exceptions
Type | Condition |
---|---|
ObjectDisposedException | The WebRTC has already been disposed. |
API Level: 9
Declaration
C#Copypublic WebRTCPeerConnectionState PeerConnectionState { get; }
Property Value
Type | Description |
---|---|
WebRTCPeerConnectionState | The current peer connection state of the WebRTC. |
Exceptions
Type | Condition |
---|---|
ObjectDisposedException | The WebRTC has already been disposed. |
API Level: 9
Declaration
C#Copypublic WebRTCSignalingState SignalingState { get; }
Property Value
Type | Description |
---|---|
WebRTCSignalingState | The current signaling state of the WebRTC. |
Exceptions
Type | Condition |
---|---|
ObjectDisposedException | The WebRTC has already been disposed. |
API Level: 9
Declaration
C#Copypublic WebRTCState State { get; }
Property Value
Type | Description |
---|---|
WebRTCState | The current state of the WebRTC. |
Exceptions
Type | Condition |
---|---|
ObjectDisposedException | The WebRTC has already been disposed. |
API Level: 9
Declaration
C#Copypublic string StunServer { get; set; }
Property Value
Type | Description |
---|---|
System.String | The STUN server url |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | STUN server URI is null. |
ObjectDisposedException | The WebRTC has already been disposed. |
API Level: 9
Methods
AddIceCandidate(String)
Adds a new ICE candidate from the remote peer over its signaling channel.
Declaration
C#Copypublic void AddIceCandidate(string iceCandidate)
Parameters
Type | Name | Description |
---|---|---|
System.String | iceCandidate | The ICE candidate. |
Remarks
The WebRTC must be in the Negotiating.
Exceptions
Type | Condition |
---|---|
System.ArgumentException | The ICE candidate is empty string. |
ArgumentNullException | The ICE candidate is null. |
System.InvalidOperationException | The WebRTC is not in the valid state. |
ObjectDisposedException | The WebRTC has already been disposed. |
API Level: 9
AddIceCandidates(IEnumerable<String>)
Adds new ICE candidates from the remote peer over its signaling channel.
Declaration
C#Copypublic void AddIceCandidates(IEnumerable<string> iceCandidates)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IEnumerable<System.String> | iceCandidates | The ICE candidates. |
Remarks
The WebRTC must be in the Negotiating.
Exceptions
Type | Condition |
---|---|
System.ArgumentException | The ICE candidate is empty string. |
ArgumentNullException | The ICE candidate is null. |
System.InvalidOperationException | The WebRTC is not in the valid state. |
ObjectDisposedException | The WebRTC has already been disposed. |
API Level: 9
Declaration
C#Copypublic void AddSource(MediaSource source)
Parameters
Type | Name | Description |
---|---|---|
MediaSource | source | The media sources to add. |
Remarks
The WebRTC must be in the Idle.
Each MediaSource requires different feature or privilege.
MediaCameraSource needs camera feature and privilege.
MediaMicrophoneSource needs microphone feature and recorder privilege.
Exceptions
Type | Condition |
---|---|
ArgumentNullException | The media source is null. |
System.InvalidOperationException | The WebRTC is not in the valid state.
|
System.NotSupportedException | The required feature is not supported. |
ObjectDisposedException | The WebRTC has already been disposed. |
UnauthorizedAccessException | Thrown when the permission is denied. |
See Also
API Level: 9
Privilege Level: public
Privilege: http://tizen.org/privilege/camerahttp://tizen.org/privilege/mediastoragehttp://tizen.org/privilege/externalstoragehttp://tizen.org/privilege/recorder
Feature: http://tizen.org/feature/camerahttp://tizen.org/feature/microphone
Declaration
C#Copypublic void AddSources(params MediaSource[] sources)
Parameters
Type | Name | Description |
---|---|---|
MediaSource[] | sources | The media sources to add. |
Remarks
The WebRTC must be in the Idle.
Each MediaSource requires different feature or privilege.
MediaCameraSource needs camera feature and privilege.
MediaMicrophoneSource needs microphone feature and recorder privilege.
Exceptions
Type | Condition |
---|---|
ArgumentNullException | The media source is null. |
System.InvalidOperationException | The WebRTC is not in the valid state.
|
System.NotSupportedException | The required feature is not supported. |
ObjectDisposedException | The WebRTC has already been disposed. |
UnauthorizedAccessException | Thrown when the permission is denied. |
See Also
API Level: 9
Privilege Level: public
Privilege: http://tizen.org/privilege/camerahttp://tizen.org/privilege/mediastoragehttp://tizen.org/privilege/externalstoragehttp://tizen.org/privilege/recorder
Feature: http://tizen.org/feature/camerahttp://tizen.org/feature/microphone
CreateAnswerAsync()
Creates SDP answer asynchronously with option to an offer received from a remote peer.
Declaration
C#Copypublic Task<string> CreateAnswerAsync()
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task<System.String> | The SDP answer. |
Remarks
The WebRTC must be in the Negotiating
Exceptions
Type | Condition |
---|---|
System.InvalidOperationException | The WebRTC is not in the valid state. |
ObjectDisposedException | The WebRTC has already been disposed. |
See Also
API Level: 9
CreateOfferAsync()
Creates SDP offer asynchronously to start a new WebRTC connection to a remote peer.
Declaration
C#Copypublic Task<string> CreateOfferAsync()
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task<System.String> | The SDP offer. |
Remarks
The WebRTC must be in the Negotiating
Exceptions
Type | Condition |
---|---|
System.InvalidOperationException | The WebRTC is not in the valid state. |
ObjectDisposedException | The WebRTC has already been disposed. |
See Also
API Level: 9
Declaration
C#Copypublic void Dispose()
API Level: 9
Declaration
C#Copypublic ReadOnlyCollection<string> GetTurnServer()
Returns
Type | Description |
---|---|
ReadOnlyCollection<System.String> | The turn server list. |
Exceptions
Type | Condition |
---|---|
ObjectDisposedException | The WebRTC has already been disposed. |
API Level: 9
Declaration
C#Copypublic void RemoveSource(MediaSource source)
Parameters
Type | Name | Description |
---|---|---|
MediaSource | source | The media source to remove. |
Remarks
The WebRTC must be in the Idle.
If user want to use removed MediaSource again, user should create new instance for it.
Exceptions
Type | Condition |
---|---|
ArgumentNullException | The media source is null. |
System.InvalidOperationException | The WebRTC is not in the valid state. |
ObjectDisposedException | The WebRTC has already been disposed. |
See Also
API Level: 9
Declaration
C#Copypublic void RemoveSources(params MediaSource[] sources)
Parameters
Type | Name | Description |
---|---|---|
MediaSource[] | sources | The media source to remove. |
Remarks
The WebRTC must be in the Idle.
If user want to use removed MediaSource again, user should create new instance for it.
Exceptions
Type | Condition |
---|---|
ArgumentNullException | The media source is null. |
System.InvalidOperationException | The WebRTC is not in the valid state. |
ObjectDisposedException | The WebRTC has already been disposed. |
See Also
API Level: 9
Declaration
C#Copypublic void SetLocalDescription(string description)
Parameters
Type | Name | Description |
---|---|---|
System.String | description | The local session description. |
Remarks
The WebRTC must be in the Negotiating.
Exceptions
Type | Condition |
---|---|
System.ArgumentException | The description is empty string. |
ArgumentNullException | The description is null. |
System.InvalidOperationException | The WebRTC is not in the valid state. |
ObjectDisposedException | The WebRTC has already been disposed. |
API Level: 9
SetRemoteDescription(String)
Sets the session description of the remote peer's current offer or answer.
Declaration
C#Copypublic void SetRemoteDescription(string description)
Parameters
Type | Name | Description |
---|---|---|
System.String | description | The remote session description. |
Remarks
The WebRTC must be in the Negotiating.
Exceptions
Type | Condition |
---|---|
System.ArgumentException | The description is empty string. |
ArgumentNullException | The description is null. |
System.InvalidOperationException | The WebRTC is not in the valid state. |
ObjectDisposedException | The WebRTC has already been disposed. |
API Level: 9
Declaration
C#Copypublic void SetTurnServer(string turnServer)
Parameters
Type | Name | Description |
---|---|---|
System.String | turnServer |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | The |
ObjectDisposedException | The WebRTC has already been disposed. |
API Level: 9
Declaration
C#Copypublic void SetTurnServers(params string[] turnServers)
Parameters
Type | Name | Description |
---|---|---|
System.String[] | turnServers |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | The one of |
ObjectDisposedException | The WebRTC has already been disposed. |
API Level: 9
Declaration
C#Copypublic void Start()
Remarks
The WebRTC must be in the Idle state.
The WebRTC state will be Negotiating state.
The user should check whether State is changed to Negotiating state or not.
Exceptions
Type | Condition |
---|---|
System.InvalidOperationException | The WebRTC is not in the valid state. |
ObjectDisposedException | The WebRTC has already been disposed. |
API Level: 9
Declaration
C#Copypublic Task StartAsync()
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task |
Remarks
The WebRTC must be in the Idle state.
The WebRTC state will be Negotiating state.
This ensures that State is changed to Negotiating state.
Exceptions
Type | Condition |
---|---|
System.InvalidOperationException | The WebRTC is not in the valid state. |
ObjectDisposedException | The WebRTC has already been disposed. |
API Level: 9
Declaration
C#Copypublic void Stop()
Remarks
The WebRTC must be in the Negotiating or Playing state.
The WebRTC state will be Idle state.
The user should check whether State is changed to Idle state or not.
Exceptions
Type | Condition |
---|---|
System.InvalidOperationException | The WebRTC is not in the valid state. |
ObjectDisposedException | The WebRTC has already been disposed. |
API Level: 9
Events
Declaration
C#Copypublic event EventHandler<WebRTCFrameEncodedEventArgs> AudioFrameEncoded
Event Type
Type | Description |
---|---|
System.EventHandler<WebRTCFrameEncodedEventArgs> |
API Level: 9
DataChannel
Occurs when the data channel is created to the connection by the remote peer.
Declaration
C#Copypublic event EventHandler<WebRTCDataChannelEventArgs> DataChannel
Event Type
Type | Description |
---|---|
System.EventHandler<WebRTCDataChannelEventArgs> |
API Level: 9
Declaration
C#Copypublic event EventHandler<WebRTCErrorOccurredEventArgs> ErrorOccurred
Event Type
Type | Description |
---|---|
System.EventHandler<WebRTCErrorOccurredEventArgs> |
API Level: 9
IceCandidate
Occurs when the WebRTC needs to send the ICE candidate message to the remote peer.
Declaration
C#Copypublic event EventHandler<WebRTCIceCandidateEventArgs> IceCandidate
Event Type
Type | Description |
---|---|
System.EventHandler<WebRTCIceCandidateEventArgs> |
API Level: 9
Declaration
C#Copypublic event EventHandler<WebRTCIceConnectionStateChangedEventArgs> IceConnectionStateChanged
Event Type
Type | Description |
---|---|
System.EventHandler<WebRTCIceConnectionStateChangedEventArgs> |
API Level: 9
Declaration
C#Copypublic event EventHandler<WebRTCIceGatheringStateChangedEventArgs> IceGatheringStateChanged
Event Type
Type | Description |
---|---|
System.EventHandler<WebRTCIceGatheringStateChangedEventArgs> |
API Level: 9
Declaration
C#Copypublic event EventHandler<EventArgs> NegotiationNeeded
Event Type
Type | Description |
---|---|
System.EventHandler<System.EventArgs> |
API Level: 9
Declaration
C#Copypublic event EventHandler<WebRTCPeerConnectionStateChangedEventArgs> PeerConnectionStateChanged
Event Type
Type | Description |
---|---|
System.EventHandler<WebRTCPeerConnectionStateChangedEventArgs> |
API Level: 9
Declaration
C#Copypublic event EventHandler<WebRTCSignalingStateChangedEventArgs> SignalingStateChanged
Event Type
Type | Description |
---|---|
System.EventHandler<WebRTCSignalingStateChangedEventArgs> |
API Level: 9
Declaration
C#Copypublic event EventHandler<WebRTCStateChangedEventArgs> StateChanged
Event Type
Type | Description |
---|---|
System.EventHandler<WebRTCStateChangedEventArgs> |
API Level: 9
Declaration
C#Copypublic event EventHandler<WebRTCTrackAddedEventArgs> TrackAdded
Event Type
Type | Description |
---|---|
System.EventHandler<WebRTCTrackAddedEventArgs> |
API Level: 9
Declaration
C#Copypublic event EventHandler<WebRTCFrameEncodedEventArgs> VideoFrameEncoded
Event Type
Type | Description |
---|---|
System.EventHandler<WebRTCFrameEncodedEventArgs> |