1. 開発者向けのウェブ技術
  2. Web API
  3. オーディオセッション API

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

オーディオセッション API

利用可能性は限定的

この機能はベースラインではありません。最も広く使用されているブラウザーの一部で動作しません。

Want more support for this feature? Tell us why.

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

オーディオセッション API は、 ウェブアプリケーションが、デバイス上で再生されている他のオーディオとの相互作用を制御するためのメカニズムを提供します。

概念と使用法

人々はますますウェブを通じてメディアを消費するようになり、ウェブは今やオーディオやビデオコンテンツにアクセスするための主要なチャネルとなっています。しかし、ウェブ上のメディアは、基盤となるプラットフォームとのシームレスな統合が欠けている場合が少なくありません。 オーディオセッション API は、開発者がウェブアプリケーションで生成されたオーディオがデバイス上の他のアプリケーションのオーディオとどのように相互作用するかを指定できるようにすることで、このギャップを解消します。例えば、他のオーディオと同時に再生したり、音量を下げたり、一時停止してオーディオを単独で再生したりできます。

ウェブページは、 HTMLMediaElementウェブオーディオ API などの API を使用して、さまざまな方法で音声処理を実行できます。オーディオセッションは、ウェブページによって生成された集約された音声を表し、ウェブページが音声出力の一般的な性質を表現できるようにします。

音声セッションの種類

API は、アプリケーションが生成するオーディオの種類を指定する、いくつかのオーディオセッションタイプをサポートしています。

  • "auto" — デフォルト。ユーザーエージェントは、使用されているオーディオ API に基づいて最適なタイプを自動的に選択します。
  • "playback" — 音楽や動画などのメディア再生用です。このタイプの音声は、他のオーディオ再生音声と混用しないでください。
  • "transient" — 通知音のような短い音です。このタイプの音は通常、他の音声の上に重ねて再生されます。
  • "transient-solo" — 他のすべての音声を一時停止して単独で再生される音声(音声プロンプトなど)のみを再生します。
  • "ambient" — 他の音声ソースとミックスできる音声用。
  • "play-and-record" — ビデオ会議など、音声の再生と録音の両方を行うアプリケーション向け。

インターフェイス

AudioSession

オーディオセッションの動作を制御するためのメインインターフェイス。オーディオセッションタイプの設定なども含まれます。

他のインターフェイスへの拡張

現在のドキュメントの AudioSession オブジェクトを返します。

ビデオ会議の音声セッションを設定する

ビデオ会議アプリケーションでは、再生と録画の両方が同時に必要となります。オーディオセッション API は、このような場合に役立ちます。

まず、オーディオセッションタイプを "play-and-record" に設定し、このページではマイクへのアクセスと音声出力が必要であることをプラットフォームに通知します。対応プラットフォームでは、これによりシステム音量ルーティングが調整され(例えば、モバイルデバイスではスピーカーではなくイヤホンを使用するなど)、他のアプリケーションからの音声が通話を妨害するのを防ぐことができます。

js
navigator.audioSession.type = "play-and-record";

次に、通常どおりビデオ通話用のメディアストリームを設定します。プラットフォームは、これらのストリームによって生成された音声を "play-and-record" セッションタイプに従って処理します。

js
// Start playing remote media
remoteVideo.srcObject = remoteMediaStream;
remoteVideo.play();
// Start capturing local media
navigator.mediaDevices
 .getUserMedia({ audio: true, video: true })
 .then((stream) => {
 localVideo.srcObject = stream;
 });

仕様書

仕様書
Audio Session
# audiosession
Audio Session
# dom-navigator-audiosession

ブラウザーの互換性

api.AudioSession

api.Navigator.audioSession

関連情報

MDN の改良に協力

協力方法を知る

このページは MDN の貢献者によって に最終更新されました。

AltStyle によって変換されたページ (->オリジナル) /