github.com/pion/webrtc/v4@v4.0.1/rtptransceiver_js.go (about) 1 // SPDX-FileCopyrightText: 2023 The Pion community <https://pion.ly> 2 // SPDX-License-Identifier: MIT 3 4 //go:build js && wasm 5 // +build js,wasm 6 7 package webrtc 8 9 import ( 10 "syscall/js" 11 ) 12 13 // RTPTransceiver represents a combination of an RTPSender and an RTPReceiver that share a common mid. 14 type RTPTransceiver struct { 15 // Pointer to the underlying JavaScript RTCRTPTransceiver object. 16 underlying js.Value 17 } 18 19 // Direction returns the RTPTransceiver's current direction 20 func (r *RTPTransceiver) Direction() RTPTransceiverDirection { 21 return NewRTPTransceiverDirection(r.underlying.Get("direction").String()) 22 } 23 24 // Sender returns the RTPTransceiver's RTPSender if it has one 25 func (r *RTPTransceiver) Sender() *RTPSender { 26 underlying := r.underlying.Get("sender") 27 if underlying.IsNull() { 28 return nil 29 } 30 31 return &RTPSender{underlying: underlying} 32 } 33 34 // Receiver returns the RTPTransceiver's RTPReceiver if it has one 35 func (r *RTPTransceiver) Receiver() *RTPReceiver { 36 underlying := r.underlying.Get("receiver") 37 if underlying.IsNull() { 38 return nil 39 } 40 41 return &RTPReceiver{underlying: underlying} 42 }