RTCRtpTransceiver
方法
setCodecPreferences()
configures the transceiver's codecs given a list of
RTCRtpCodecCapability
objects specifying the new preferences for each
codec
.
The specified set of codecs and configurations will be used for all future connections including this transceiver until this method is called again.
When preparing to open an
RTCPeerConnection
, you can change the codec parameters from the
user agent's
default configuration by calling
setCodecParameters()
before
calling either
RTCPeerConnection.createOffer()
or
createAnswer()
.
A guide to codecs supported by WebRTC—and each codec's positive and negative characteristics—can be found in Codecs used by WebRTC .
rtcRtpTransceiver.setCodecPreferences(codecs)
codecs
An array of
RTCRtpCodecCapability
objects, in order of preference, each providing the parameters for one of the transceiver's supported codecs. If
codecs
is empty, the codec configurations are all returned to the user agent's defaults.
codecs
will not be considered during the process of negotiating a connection. This lets you prevent the use of codecs you don't wish to use.
undefined
InvalidAccessError
codecs
list includes one or more codecs which are not supported by the transceiver.
You can only include in the
codecs
list codecs which the transceiver actually supports. That means that either the associated
RTCRtpSender
或
RTCRtpReceiver
needs to support every codec in the list. If any unsupported codecs are listed, the browser will throw an
InvalidAccessError
exception when you call this method.
A good approach to setting codec preferences is to first get the list of codecs that are actually supported, then modify that list to match what you want. Pass the altered list into
setCodecPreferences()
to specify your preferences.
To determine which codecs are supported by the transceiver, call the sender's
getCapabilities()
and the receiver's
getCapabilities()
methods and get the
codecs
list from the results of each.
The following code snippet demonstrates how to get both the list of codecs supported by the transceiver's
RTCRtpSender
and
RTCRtpReceiver
.
var availSendCodecs = transceiver.sender.getCapabilities("video").codecs;
var availReceiveCodecs = transceiver.receiver.getCapabilities("video").codecs;
| 规范 | 状态 | 注释 |
|---|---|---|
|
WebRTC 1.0: Real-time Communication Between Browsers
The definition of 'RTCRtpTransceiver.setCodecPreferences()' in that specification. |
候选推荐 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
setCodecPreferences()
|
Chrome 不支持 No | Edge 不支持 No | Firefox 不支持 No | IE 不支持 No | Opera 不支持 No | Safari ? | WebView Android 不支持 No | Chrome Android 不支持 No | Firefox Android 不支持 No | Opera Android 不支持 No | Safari iOS ? | Samsung Internet Android 不支持 No |
不支持
兼容性未知
RTCRtpTransceiver
setCodecPreferences()
stop()
MediaDevices.getUserMedia()
Navigator.mediaDevices
RTCCertificate
RTCDTMFSender
RTCDTMFToneChangeEvent
RTCDataChannel
RTCDataChannelEvent
RTCDtlsTransport
RTCErrorEvent
RTCIceCandidate
RTCIceTransport
RTCPeerConnection
RTCPeerConnectionIceErrorEvent
RTCPeerConnectionIceEvent
RTCRtpReceiver
RTCRtpSender
RTCSctpTransport
RTCSessionDescription
RTCStatsEvent
RTCStatsReport
RTCTrackEvent