Add audioBitrate option for publishAudioTrack. (#124)
This commit is contained in:
@@ -105,6 +105,12 @@ class VideoPublishOptions {
|
||||
'${runtimeType}(videoEncoding: ${videoEncoding}, simulcast: ${simulcast})';
|
||||
}
|
||||
|
||||
class AudioPreset {
|
||||
static const telephone = 12000;
|
||||
static const speech = 20000;
|
||||
static const music = 32000;
|
||||
}
|
||||
|
||||
/// Options used when publishing audio.
|
||||
class AudioPublishOptions {
|
||||
/// Whether to enable DTX (Discontinuous Transmission) or not.
|
||||
@@ -112,8 +118,12 @@ class AudioPublishOptions {
|
||||
/// Defaults to true.
|
||||
final bool dtx;
|
||||
|
||||
/// max audio bitrate
|
||||
final int audioBitrate;
|
||||
|
||||
const AudioPublishOptions({
|
||||
this.dtx = true,
|
||||
this.audioBitrate = AudioPreset.speech,
|
||||
});
|
||||
|
||||
@override
|
||||
|
||||
@@ -64,6 +64,10 @@ class LocalParticipant extends Participant<LocalTrackPublication> {
|
||||
|
||||
final transceiverInit = rtc.RTCRtpTransceiverInit(
|
||||
direction: rtc.TransceiverDirection.SendOnly,
|
||||
sendEncodings: [
|
||||
if (publishOptions.audioBitrate > 0)
|
||||
rtc.RTCRtpEncoding(maxBitrate: publishOptions.audioBitrate),
|
||||
],
|
||||
);
|
||||
// addTransceiver cannot pass in a kind parameter due to a bug in flutter-webrtc (web)
|
||||
track.transceiver = await room.engine.publisher?.pc.addTransceiver(
|
||||
|
||||
Reference in New Issue
Block a user