RTC媒体管理

在这里插入图片描述

classDiagram

class MediaStreamTrack {

}
class RTCPeerConnection {
  -- RTP 扩展方法 --
  + addTranscceiver()
  + addTransceiver()
  + addTrack()
  + removeTrack()
  + getTransceivers():<RTCRtpTransceiver[]>
  + getSenders(): <RTCRtpSender[]>
  + getReceivers()
  -- RTP 扩展事件 --
  + Event ontrack
}

RTCPeerConnection::RTCRtpTransceiver -o RTCRtpTransceiver

class RTCRtpTransceiver {
  + readonly currentDirection
  + readonly direction
  + readonly mid
  + readonly receiver: RTCRtpReceiver[]
  + readonly sender: RTCRtpSender[]
  + setCodecPreferences() // 设置编码格式
  + stop() // 停止通道传输
}





class RTCRtpReceiver {
  + readonly track: MediaStreamTrack
  + readonly transport: RTCDtlsTransport
  + {static} getCapbilities () 静态方法 // 该方法用于获取平台接收能力
  + getParamters() // 返回 RTP 解码参数
  + getContributingSources()  // 返回最近10S内的贡献源(CSRC)
  + getSynchronizationSources() // 返回最近10s内的同步源(SSRC)
  + getStats() // 该方法返回RTP接收器的统计数据
}
RTCRtpReceiver ---o RTCDtlsTransport
RTCRtpReceiver --o MediaStreamTrack
RTCRtpTransceiver -o RTCRtpReceiver

class RTCRtpSender {
  + readonly track: MediaStreamTrack
  + readonly dtmf: RTCDTMFSender
  + readonly transport: RTCDtlsTransport
  + {static} getCapbilities() // 该方法用于获取平台发送能力
  + getParamters() // 获取 RTP 媒体编码及传输信息
  + setParamters() // 更新 RTP 编码及传输信息
  + replaceTrack() // 替换媒体流轨道
  + getStats() // 返回 RTP 发送器的统计数据
}

RTCRtpSender ---o RTCDtlsTransport
RTCRtpSender --o MediaStreamTrack
RTCRtpSender -o RTCDTMFSender
RTCRtpTransceiver --o RTCRtpSender



class RTCDtlsTransport {
  + readonly iceTransport: RTCIceTransport
  + readonly state: RTCDtlsTransportState
  + getRemoteCertificates()
  + Event onstatechange
  + Event onerror
}


class RTCIceTransport {
  + readonly role: RTCIceRole
  + readonly components: RTCIceComponent
  + readonly state: RTCIceTransportState
  + readonly gatheringState: RTCGatheringState
  .. 方法 ..
  + getLocalCandidates(): RTCIceCandidate[]
  + getRemoteCandidates(): RTCIceCandidate[]
  + getSelectedCandidatePair(): RTCIceCandidatePair
  + getLocalParameters(): RTCIceParameters
  + getRemoteParameters(): RTCIceParameters
  .. Event ..
  + Event Statechange // RTCIceTransport 状态发生变更时触发该事件
  + Event GatheringStateChange// ICE 候选者的收集状态值发生改变时触发该事件
  + Event Selectedcandidatepairchange // ICE 代理选择了新的候选对时触发该事件
}
RTCDtlsTransport -o RTCIceTransport

class RTCDTMFSender {
  + readonly canInsertDTMF: Boolean
  + readonly toneBuffer: ArrayBuffer
  + insertDTMF()
  + Event ontonechange
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Android RTC(Real-Time Communication)是指在Android平台上进行实时通信的技术和功能。它包括音频通话、视频通话、实时消息传递等功能,可以用于实现即时通讯、在线会议、远程教育等应用场景。 Android RTC的实现通常依赖于以下几个关键技术和组件: 1. 音视频编解码:Android提供了多种音视频编解码器,可以对音频和视频进行压缩和解压缩,以实现高质量的音视频传输和播放。 2. 网络传输:Android支持多种网络传输协议,如TCP、UDP、HTTP等,可以通过这些协议进行音视频数据的传输和接收。 3. 实时传输协议:Android RTC通常使用实时传输协议(Real-time Transport Protocol,简称RTP)来传输音视频数据。RTP是一种面向实时应用的传输协议,可以提供低延迟和高可靠性的数据传输。 4. 媒体引擎:Android提供了媒体引擎(Media Engine)来处理音视频数据的采集、编码、解码、渲染等操作。媒体引擎可以与硬件加速器结合使用,提高音视频处理的效率和性能。 5. 实时通信协议:Android RTC可以使用各种实时通信协议,如WebRTC、SIP(Session Initiation Protocol)、XMPP(Extensible Messaging and Presence Protocol)等,来建立和管理音视频通话的会话。 通过以上技术和组件的组合,Android RTC可以实现高质量的音视频通话和实时消息传递。开发者可以使用Android提供的API和框架,或者借助第三方库和SDK来实现Android RTC功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从未、淡定

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值