---
title: MediaStreamTrack
slug: Web/API/MediaStreamTrack
tags:
  - API
  - Audio
  - Interface
  - Media
  - Media Capture and Streams API
  - Media Streams API
  - MediaStreamTrack
  - Reference
  - Video
  - WebRTC
  - インターフェイス
translation_of: Web/API/MediaStreamTrack
---
<div>{{APIRef("Media Capture and Streams")}}</div>

<p><span class="seoSummary"><strong><code>MediaStreamTrack</code></strong> インターフェイスは、ストリームに含まれる一つのメディアトラックを表現します。一般的に、オーディオやビデオのトラックですが、他の種類のトラックも存在することができます。</span></p>

<h2 id="Properties" name="Properties">プロパティ</h2>

<p>以下に示すプロパティに加えて、 <code>MediaStreamTrack</code> は制約可能なプロパティを持っています。これらのプロパティは、 {{domxref("MediaStreamTrack.applyConstraints", "applyConstraints()")}} によって設定でき、 {{domxref("MediaStreamTrack.getConstraints", "getConstraints()")}} と {{domxref("MediaStreamTrack.getSettings", "getSettings()")}} によって取得できます。制約可能なプロパティを用いて適切に動作させるためにはどのようにすればいいかを知りたい場合は、 <a href="/ja/docs/Web/API/Media_Streams_API/Constraints">Capabilities, constraints, and settings</a> を見てください。適切に動作させなかった場合の結果として、あなたが作成したコードは信頼できないものになります。</p>

<dl>
 <dt>{{domxref("MediaStreamTrack.contentHint")}}</dt>
 <dd>文字列で、 API 利用者がどのように扱うかをガイドするために、トラックが含んでいるものコンテンツの種類が何であるかのヒントを提供するためにウェブアプリケーションが使用します。</dd>
 <dt>{{domxref("MediaStreamTrack.enabled")}}</dt>
 <dd>論理型で、トラックが有効の場合は <code>true</code> の値になり、メディアソースストリームを描画することができます。トラックが無効の場合は <code>false</code> の値になり、メディアソースストリームに描画されません。トラックの接続が解除された場合、この値は変更することはできますが影響を与えることはありません。
 <div class="note"><strong>メモ:</strong> 標準的なミュート (消音) 機能を実装するには <code>enabled</code> を <code>false</code> にします。 <code>muted</code> プロパティは技術的な問題でメディアがない状態を表します。</div>
 </dd>
 <dt>{{domxref("MediaStreamTrack.id")}} {{readonlyInline}}</dt>
 <dd>トラックの固有識別子 (GUID) を含む {{domxref("DOMString")}} を返します。この識別子はブラウザーによって生成されます。</dd>
 <dt>{{domxref("MediaStreamTrack.isolated")}} {{readonlyInline}}</dt>
 <dd>Returns a Boolean value which is <code>true</code> if the track is <strong>isolated</strong>; that is, the track cannot be accessed by the document that owns the <code>MediaStreamTrack</code>. This happens when the {{domxref("MediaStreamTrack.peerIdentity", "peerIdentity")}} property is set, or if the track comes from a cross-origin source.</dd>
 <dt>{{domxref("MediaStreamTrack.kind")}} {{readonlyInline}}</dt>
 <dd>{{domxref("DOMString")}}を返します。このトラックがオーディオトラックの場合は<code>"audio"</code>が設定され、ビデオトラックの場合は<code>"video"</code>が設定されます。ソースからの関連付けが解除された場合、この値が変更されることはありません。</dd>
 <dt>{{domxref("MediaStreamTrack.label")}} {{readonlyInline}}</dt>
 <dd><code>"internal microphone"</code>のようなトラックソースを識別するユーザエージェントによって割り当てられたラベルを含む{{domxref("DOMString")}}を返します。この文字列は空になることもあり、ソースが接続されていないと空になります。トラックのソースとの関連付けが解除されても、このラベルは変更されません。</dd>
 <dt>{{domxref("MediaStreamTrack.muted")}} {{readonlyInline}}</dt>
 <dd>Booleanの値を返します。トラックがミュートであるかどうかを示します。
 <div class="note"><strong>Note:</strong> You can implement standard "mute" functionality by setting <code>enabled</code> to <code>false</code>, and unmute the media by setting it back to <code>true</code> again.</div>
 </dd>
 <dt>{{domxref("MediaStreamTrack.readonly")}} {{readonlyInline}}</dt>
 <dd>Booleanの値を返します。トラックが読み取り専用の場合(ビデオファイルソースやカメラなどの設定を変更することができないもののような)は<code>true</code>を返し、それ以外の場合は<code>false</code>を返します。</dd>
 <dt>{{domxref("MediaStreamTrack.readyState")}} {{readonlyInline}}</dt>
 <dd>トラックの状態を表す列挙型の値を返します。この値は次のどれかになります。
 <ul>
  <li><code>"live"</code>は入力デバイスが接続されており、ベストエフォートでリアルタイムなデータを提供することを表します。この状態では、<code>MediaStreamTrack.enabled</code>属性を用いることで、データの出力のオンとオフを切り替えることができます。</li>
  <li><code>"ended"</code>は入力デバイスがこれ以上データを提供することがなく、新しいデータも一切提供されないことを示します。</li>
 </ul>
 </dd>
 <dt>{{domxref("MediaStreamTrack.remote")}} {{obsolete_inline("")}} {{readonlyInline}}</dt>
 <dd>Booleanの値を返します。トラックのソースが{{domxref("RTCPeerConnection")}}の場合は<code>true</code>であり、それ以外は<code>false</code>です。</dd>
</dl>

<h2 id="メソッド">メソッド</h2>

<dl>
 <dt>{{domxref("MediaStreamTrack.applyConstraints()")}}</dt>
 <dd><code>MediaStreamTrack</code>の有効な制約可能な値についての許容できる値の範囲を指定します。</dd>
 <dt>{{domxref("MediaStreamTrack.clone()")}}</dt>
 <dd><code>MediaStreamTrack</code>の複製を返します。</dd>
 <dt>{{domxref("MediaStreamTrack.getCapabilities()")}}</dt>
 <dd><code>MediaStreamTrack</code>で有効な制約可能なプロパティの一覧を返します。</dd>
 <dt>{{domxref("MediaStreamTrack.getConstraints()")}}</dt>
 <dd>トラックに設定されている制約を含む{{domxref('MediaTrackConstraints')}}を返します。戻り値は、最後に{{domxref("MediaStreamTrack.applyConstraints", "applyConstraints()")}}を用いて設定した制約に一致します。</dd>
 <dt>{{domxref("MediaStreamTrack.getSettings()")}}</dt>
 <dd><code>MediaStreamTrack</code>の制約可能なプロパティの値を含む{{domxref("MediaTrackSettings")}}オブジェクトを返します。</dd>
 <dt>{{domxref("MediaStreamTrack.stop()")}}</dt>
 <dd>トラックに関連付けられたソースの再生を停止し、ソースとトラックの関連付けを解除します。トラックの状態は<code>ended</code>に設定されます。</dd>
</dl>

<h2 id="Events" name="Events">イベント</h2>

<p>これらのイベントを待ち受けするには、 {{domxref("EventTarget.addEventListener", "addEventListener()")}} を使用するか、イベントリスナーをこのインターフェイスの <code>on<em>イベント名</em></code> プロパティに代入するかします。</p>

<dl>
 <dt>{{domxref("MediaStreamTrack/ended_event", "ended")}}</dt>
 <dd>Sent when playback of the track ends (when the value {{domxref("MediaStreamTrack.readyState", "readyState")}} changes to <code>ended</code>).<br>
 Also available using the {{domxref("MediaStreamTrack/onended", "onended")}} event handler property.</dd>
 <dt>{{domxref("MediaStreamTrack/mute_event", "mute")}}</dt>
 <dd>Sent to the <code>MediaStreamTrack</code> when the value of the {{domxref("MediaStreamTrack.muted", "muted")}} property is changed to <code>true</code>, indicating that the track is unable to provide data temporarily (such as when the network is experiencing a service malfunction).<br>
 Also available using the {{domxref("MediaStreamTrack/onmute", "onmute")}} event handler property.</dd>
 <dt>{{domxref("MediaStreamTrack/isolationchange_event", "isolationchange")}}</dt>
 <dd>Sent whenever the value of the {{domxref("MediaStreamTrack.isolated", "isolated")}} property changes due to the document gaining or losing permission to access the track.<br>
 Also available through the {{domxref("MediaStreamTrack/onisolationchange", "onisolationchange")}} event handler property.</dd>
 <dt>{{domxref("MediaStreamTrack/overconstrained_event", "overconstrained")}} {{deprecated_inline}}</dt>
 <dd>Sent when the constraints specified for the track cause the track to be incompatible and therefore to not be used.<br>
 Also available through the {{domxref("MediaStreamTrack/onoverconstrained", "onoverconstrained")}} event handler property.</dd>
 <dt>{{domxref("MediaStreamTrack/unmute_event", "unmute")}}</dt>
 <dd>Sent to the track when data becomes available again, ending the <code>muted</code> state.<br>
 Also available through the {{domxref("MediaStreamTrack/onunmute", "onunmute")}} event handler property.</dd>
</dl>

<h2 id="Specifications" name="Specifications">仕様書</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">仕様書</th>
   <th scope="col">状態</th>
   <th scope="col">備考</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName("WebRTC Identity", "#isolated-track", "Isolated tracks")}}</td>
   <td>{{Spec2("WebRTC Identity")}}</td>
   <td>独立トラック対応のための追加プロパティ</td>
  </tr>
  <tr>
   <td>{{SpecName('Media Capture', '#mediastreamtrack', 'MediaStreamTrack')}}</td>
   <td>{{Spec2('Media Capture')}}</td>
   <td>初回定義</td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>

<p>{{Compat("api.MediaStreamTrack")}}</p>

<h2 id="See_also" name="See_also">関連情報</h2>

<ul>
 <li><a href="/en-US/docs/Web/API/Media_Streams_API">Media Capture and Streams API</a></li>
 <li>{{domxref("MediaStream")}}</li>
</ul>