MediaStreamTrack

MediaStreamTrack 인터페이스는 스트림 내의 단일 미디어 트랙을 나타냅니다. 보통 오디오와 비디오 트랙이지만, 다른 종류도 존재할 수 있습니다.

속성

MediaStreamTrack은 다음에 나열된 속성 외에도 applyConstraints()로 설정하고 getConstraints()getSettings()로 접근 가능한 제약 속성을 가집니다. 기능, 제약, 설정 문서를 방문해 제약 속성을 다루는 법을 알아보세요. 올바르게 다루지 않으면 불안정한 코드를 낳을 수 있습니다.

MediaStreamTrack.contentHint
트랙 유형에 대한 힌트를 제공하는 문자열입니다. 웹 애플리케이션이 트랙의 처리 방식을 결정할 때 사용할 수 있습니다.
MediaStreamTrack.enabled
트랙을 활성화, 즉 미디어 출처 스트림의 렌더링을 허용하면 true이고 비활성화, 즉 미디어 소스 스트림 렌더링을 허용하지 않아 검은 화면과 조용함만 확인할 수 있으면 false인 속성입니다. 트랙의 연결이 끊긴 경우에도 값을 바꿀 수는 있으나 아무런 효과도 없습니다.
참고: 일반적인 "음소거" 기능은 enabledfalse로 바꿔서 구현할 수 있습니다. muted 속성은 기술적인 문제로 인해 미디어가 존재하지 않을 때를 나타냅니다.
MediaStreamTrack.id Read only
트랙의 고유 식별자(GUID)를 담은 DOMString을 반환합니다. 고유 식별자는 브라우저가 생성합니다.
MediaStreamTrack.isolated Read only
트랙이 고립된 경우 true인 속성입니다. 고립 상태란 해당 MediaStreamTrack을 소유한 문서에서 트랙에 접근할 수 없을 때를 의미합니다. peerIdentity 속성이 설정된 경우, 그리고 트랙의 소스가 교차 출처에 위치하는 경우 발생합니다.
MediaStreamTrack.kind Read only
오디오 트랙인 경우 "audio", 비디오 트랙인 경우 "video"DOMString을 반환합니다. 트랙이 소스에서 분리된 경우 변하지 않습니다.
MediaStreamTrack.label Read only
트랙 소스에 대해 사용자 에이전트가 할당한 식별자를 담은 DOMString을 반환합니다. 식별자의 예시는 "internal microphone"입니다. 빈 문자열일 수 있으며, 연결된 소스가 없는 경우 계속 빈 문자열로 남아 있습니다.  트랙이 소스에서 분리되더라도 식별자는 변하지 않습니다.
MediaStreamTrack.muted Read only
기술적인 문제로 인해 트랙이 미디어 데이터를 제공할 수 없음을 나타내는 불리언 값을 반환합니다.
참고: 일반적인 "음소거" 기능은 enabledfalse로 바꿔서 구현할 수 있으며, 음소거 해제는 enabled를 다시 true로 바꾸면 됩니다.
MediaStreamTrack.readonly Read only
읽기 전용 트랙(비디오 파일 소스, 설정을 바꿀 수 없는 카메라 등)인 경우 true를 반환합니다. 그 외의 경우 false를 반환합니다.
MediaStreamTrack.readyState Read only
트랙의 상태를 나타내는 열거형 값을 반환합니다. 가능한 값은 다음과 같습니다.
  • "live"는 입력이 연결됐으며 실시간 데이터를 제공하고 있음을 나타냅니다. 이때, enabled 특성을 사용해 데이터 출력을 켜거나 끌 수 있습니다.
  • "ended"는 입력이 더 이상 데이터를 전달하지 않고 있으며, 앞으로도 새로운 데이터를 제공하지 않을 것임을 나타냅니다.

메서드

MediaStreamTrack.applyConstraints()
애플리케이션이 MediaStreamTrack에 사용 가능한 제약 속성을 원하는 값과 범위로 지정할 수 있는 메서드입니다.
MediaStreamTrack.clone()
MediaStreamTrack의 복제본을 반환합니다.
MediaStreamTrack.getCapabilities()
MediaStreamTrack에 사용 가능한 제약 속성을 반환합니다.
MediaStreamTrack.getConstraints()
MediaStreamTrack에 현재 지정된 제약을 담은 MediaTrackConstraints 객체를 반환합니다. 이전에 applyConstraints()로 설정한 값과 동일합니다.
MediaStreamTrack.getSettings()
MediaStreamTrack에 현재 지정된 제약 속성 각각의 값을 담은 MediaTrackSettings 객체를 반환합니다.
MediaStreamTrack.stop()
트랙에 연결된 소스의 재생을 중단하고, 서로 분리합니다. 트랙의 상태는 ended로 변경합니다.

이벤트

다음 이벤트는 MediaStreamTrackaddEventListener()를 사용하거나 oneventname 속성을 사용해 수신할 수 있습니다.

ended
트랙의 플레이백이 끝났을 때, 즉 readyState의 값이 ended로 변했을 때 발생합니다.
onended 이벤트 처리기 속성으로도 수신할 수 있습니다.
mute
기술적인 이유(네트워크 문제 등)로 인해 일시적으로 트랙이 데이터를 제공하지 못할 때, 즉 muted의 값이 true로 변했을 때 발생합니다.
onmute 이벤트 처리기 속성으로도 수신할 수 있습니다.
isolationchange
문서가 트랙에 대한 접근 권한을 얻거나 잃었을 때, 즉 isolated의 값이 변할 때 발생합니다.
onisolationchange 이벤트 처리기 속성으로도 수신할 수 있습니다.
unmute
데이터를 다시 사용할 수 있어서 muted 상태가 끝날 때 발생합니다.
onunmute 이벤트 처리기 속성으로도 수신할 수 있습니다.

명세

Specification Status Comment
Media Capture and Streams
The definition of 'MediaStreamTrack' in that specification.
Candidate Recommendation Initial definition
Identity for WebRTC
The definition of 'Isolated tracks' in that specification.
Candidate Recommendation Additional properties for isolated track support

브라우저 호환성

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
MediaStreamTrackChrome Full support 29Edge Full support 12Firefox Full support 22IE No support NoOpera Full support 16Safari Full support 11WebView Android Full support ≤37Chrome Android Full support 29Firefox Android Full support 22Opera Android Full support 16Safari iOS Full support 11Samsung Internet Android Full support 2.0
applyConstraintsChrome Full support 63Edge Full support 12Firefox Full support 50IE No support NoOpera Full support 46Safari Full support YesWebView Android Full support 63Chrome Android Full support 63Firefox Android Full support 50Opera Android Full support 43Safari iOS Full support YesSamsung Internet Android Full support 7.0
cloneChrome Full support 45Edge Full support 12Firefox Full support 48IE No support NoOpera Full support 32Safari Full support YesWebView Android Full support 45Chrome Android Full support 45Firefox Android Full support YesOpera Android Full support 32Safari iOS Full support YesSamsung Internet Android Full support 5.0
contentHintChrome Full support 60Edge Full support ≤79Firefox ? IE No support NoOpera Full support 47Safari ? WebView Android Full support 60Chrome Android Full support 60Firefox Android ? Opera Android Full support 44Safari iOS ? Samsung Internet Android Full support 8.0
enabledChrome Full support YesEdge Full support 12Firefox Full support 24IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 24Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
ended eventChrome Full support YesEdge Full support 12Firefox Full support 50IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 50Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
getCapabilitiesChrome Full support 66Edge Full support 12Firefox No support NoIE No support NoOpera Full support 53Safari Full support YesWebView Android Full support 66Chrome Android Full support 66Firefox Android No support NoOpera Android Full support 47Safari iOS Full support YesSamsung Internet Android Full support 9.0
getConstraintsChrome Full support 53Edge Full support 12Firefox Full support 50IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support 53Chrome Android Full support 52Firefox Android Full support 50Opera Android Full support YesSafari iOS No support NoSamsung Internet Android Full support 6.0
getSettingsChrome Full support 61Edge Full support 12Firefox Full support 50IE No support NoOpera Full support 48Safari Full support YesWebView Android Full support 61Chrome Android Full support 61Firefox Android Full support 50Opera Android Full support 45Safari iOS Full support 11Samsung Internet Android Full support 8.0
getSources
Deprecated
Chrome No support ? — 56Edge ? Firefox No support NoIE No support NoOpera No support ? — 43Safari ? WebView Android No support ? — 56Chrome Android Full support 56Firefox Android ? Opera Android No support ? — 43Safari iOS ? Samsung Internet Android Full support 6.0
idChrome Full support YesEdge Full support 12Firefox Full support YesIE No support NoOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
isolatedChrome ? Edge ? Firefox No support NoIE No support NoOpera ? Safari ? WebView Android ? Chrome Android ? Firefox Android No support NoOpera Android ? Safari iOS ? Samsung Internet Android ?
kindChrome Full support YesEdge Full support 12Firefox Full support YesIE No support NoOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
labelChrome Full support YesEdge Full support 12Firefox Full support YesIE No support NoOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
mute eventChrome Full support YesEdge Full support 12Firefox Full support 59IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 59Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
mutedChrome Full support YesEdge Full support 12Firefox Full support 59IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 59Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
onendedChrome Full support YesEdge Full support 12Firefox Full support 50IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 50Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
onisolationchangeChrome ? Edge ? Firefox No support NoIE No support NoOpera ? Safari ? WebView Android ? Chrome Android ? Firefox Android No support NoOpera Android ? Safari iOS ? Samsung Internet Android ?
onmuteChrome Full support YesEdge Full support 12Firefox Full support 59IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 59Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
onoverconstrained
DeprecatedNon-standard
Chrome Full support YesEdge Full support 12Firefox Full support YesIE No support NoOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android ? Opera Android ? Safari iOS Full support YesSamsung Internet Android Full support Yes
onunmuteChrome Full support YesEdge Full support 12Firefox Full support 59IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 59Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
readonly
Deprecated
Chrome ? Edge Full support 12Firefox ? IE No support NoOpera ? Safari ? WebView Android ? Chrome Android ? Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?
readyStateChrome Full support YesEdge Full support 12Firefox Full support 50IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 50Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
remote
DeprecatedNon-standard
Chrome No support 48 — 59Edge No support 12 — 79Firefox Full support YesIE No support NoOpera No support 35 — 46Safari ? WebView Android No support 48 — 59Chrome Android No support 48 — 59Firefox Android Full support YesOpera Android No support 35 — 43Safari iOS ? Samsung Internet Android No support 5.0 — 7.0
stopChrome Full support 61Edge Full support 12Firefox Full support 34IE No support NoOpera Full support 45Safari Full support YesWebView Android Full support 61Chrome Android Full support 61Firefox Android Full support 34Opera Android Full support 43Safari iOS Full support YesSamsung Internet Android Full support 8.0
unmute eventChrome Full support YesEdge Full support 12Firefox Full support 59IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 59Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Non-standard. Expect poor cross-browser support.
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.

같이 보기