オーディオマネージャー
オーディオマネージャーを使用すると、音量調整やミュート制御などのオーディオ管理を行うことができます。
- TOC
必要な権限
このAPIでは、特定の操作に特定の権限が必要です。
[[needs.privilege]]
id = "com.amazon.audio.privilege.settings.control"
このAPIには、システムオーディオサービスの宣言も必要です。
[wants]
[[wants.service]]
id = "com.amazon.audio.control"
使用される型
オーディオコアタイプを参照してください
AudioVolumeTypeAudioVolumeFlagsAudioStatusAudioEventAudioDeviceAudioRoleAudioAttributesAudioContentTypeAudioUsageTypeAudioFlagsSinkFormatsSelectionPolicy
静的メソッド
AudioManager.setVolumeAsync(type, volume, flags)
説明
特定のオーディオタイプの音量を指定された音量に設定します。100を超える音量を入力した場合、100に設定されます。0未満の音量を入力した場合、0に設定されます。
戻り値
AudioStatus型に解決されるPromiseを返します。
パラメーター
必要な権限:com.amazon.audio.privilege.settings.control
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| type | AudioVolumeType | ○ | 音量を調整するオーディオのタイプを表します。 |
| volume | Int32 | ○ | オーディオソースの音量をパーセントで表す整数値。 |
| flags | AudioVolumeFlags | × | フラグを設定します。指定しない場合、デフォルトでAudioVolumeFlags.VOLUME_FLAG_NONEになります。 |
サンプルコード
/*
オーディオタイプがアラームの音量を50%に設定し、Promiseの解決後に返された
AudioStatus型をstatusに格納します。失敗した場合はundefinedを格納し、
エラーを出力します。
*/
const status = AudioManager.setVolumeAsync(AudioVolumeType.VOLUME_TYPE_ALARM, 50)
.then((status) => {return status;}).catch((error) => console.log(error));
AudioManager.getVolumeAsync(type)
説明
指定したオーディオタイプの音量を取得します。
戻り値
特定のタイプの現在の音量をパーセントで表す整数に解決されるPromiseを返します。
パラメーター
必要な権限:com.amazon.audio.privilege.settings.control
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| type | AudioVolumeType | ○ | 音量を調整するオーディオのタイプを表します。 |
サンプルコード
/*
オーディオタイプのメディアの音量をパーセントで取得し、promiseの解決後にvolumeに格納します。
*/
const volume = AudioManager.getVolumeAsync(AudioVolumeType.VOLUME_TYPE_MEDIA)
.then((volume) => {return volume;}).catch((error) => console.log(error));
AudioManager.setMicMuteAsync(mute)
説明
boolean型の入力に基づいて、すべてのマイク入力をミュートまたはミュート解除します。
戻り値
AudioStatus型に解決されるPromiseを返します。
パラメーター
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| mute | boolean | ○ | マイク入力をミュートまたはミュート解除するかどうかを表すブール値です。trueを入力するとマイク入力がミュートされ、falseを入力するとマイク入力のミュートが解除されます。 |
サンプルコード
/*
マイク入力をミュートし、Promiseの解決後に返されたAudioStatus型を
statusに格納します。
*/
const status = AudioManager.setMicMuteAsync(true).then((status) => {return status;}).catch((error) => console.log(error));
AudioManager.getMicMuteAsync()
説明
マイク入力のミュートステータスを取得します。
戻り値
マイク入力のミュートステータスを表すブール値に解決されるPromiseを返します。
サンプルコード
/*
マイク入力のミュートステータスを取得し、Promiseの解決後に返されたブール値を
mute_statusに格納します。
*/
const mute_status = AudioManager.getMicMuteAsync()
.then((mute_status) => {return mute_status;}).catch((error) => console.log(error));
AudioManager.setGlobalVolumeMuteAsync(mute, flags)
説明
boolean型の入力に基づいて、すべてのオーディオソースタイプをグローバルにミュートまたはミュート解除します。
戻り値
AudioStatus型に解決されるPromiseを返します。
パラメーター
必要な権限:com.amazon.audio.privilege.settings.control
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| mute | boolean | ○ | すべてのオーディオソースタイプをミュートまたはミュート解除するかどうかを表すブール値。 |
| flags | AudioVolumeFlags | × | フラグを設定します。指定しない場合、デフォルトでAudioVolumeFlags.VOLUME_FLAG_NONEになります。 |
サンプルコード
/*
グローバルミュートをtrueに設定し、Promiseの解決後に返されたAudioStatus型を
statusに格納します。
*/
const status = AudioManager.setGlobalVolumeMuteAsync(true).then((status) => {return status;}).catch((error) => console.log(error));
AudioManager.getGlobalVolumeMuteAsync()
説明
グローバルミュートステータスを取得します。
戻り値
グローバルミュートステータスを表すブール値に解決されるPromiseを返します。
サンプルコード
/*
グローバルミュートステータスを取得し、Promiseの解決後にブール値をglobal_muteに格納します。
*/
const global_mute = AudioManager.getGlobalVolumeMuteAsync().then((global_mute) => {return global_mute;}).catch((error) => console.log(error));
AudioManager.registerAudioEventObserverAsync(callback)
説明
オーディオ変更イベントが検出されるたびに実行されるコールバック関数を登録します。登録できるコールバック関数は、一度に1つだけです。
戻り値
AudioStatus型に解決されるPromiseを返します。
パラメーター
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| callback | function | ○ | イベントを受け取り、そのイベントに基づいて処理を実行するコールバック関数。 |
サンプルコード
/*
関数を作成し、オーディオイベントオブザーバーに登録して、オーディオの変更が発生するたびに
この関数が実行されるようにします。Promiseの解決後に返されたAudioStatus型を
statusに格納します。
*/
// システム全体のオーディオイベントに登録します。
await AudioManager.registerAudioEventObserverAsync((event) => {
// イベントオブジェクトには、イベントタイプに基づいてさまざまなプロパティが格納されます。
switch (event.audioEvent) {
case AudioEvent.DEVICE_STATE_UPDATE:
// オーディオデバイスの接続状態が変更されたときにトリガーされます。
// パラメーター:
// - device: AudioDevice列挙値
// - role: AudioRole列挙値
// - connect:デバイスが接続されたか(true)、切断されたか(false)を示すブール値
console.log(`デバイス${event.device}(ロール${event.role})が${event.connect ? '接続' : '切断'}されました`);
break;
case AudioEvent.VOLUME_UPDATE:
// いずれかのオーディオタイプの音量が変更されたときにトリガーされます。
// パラメーター:
// - type: AudioVolumeType列挙値
// - volume:数値(0~100)
console.log('音量が変更されました:', event.audioEvent, '変更後:', event.volume);
break;
case AudioEvent.GLOBAL_VOLUME_MUTE_UPDATE:
// グローバルのミュート状態が変更されたときにトリガーされます。
// パラメーター:
// - mute:システムがミュートになっているかどうかを示すブール値
console.log('グローバルのミュート状態が更新されました:', event.mute);
break;
case AudioEvent.SERVER_DOWN:
// オーディオサーバーが利用不可能になったときにトリガーされます。
console.log('オーディオサーバーがダウンしました');
break;
case AudioEvent.SERVER_UP:
// オーディオサーバーが利用可能になったときにトリガーされます。
console.log('オーディオサーバーが稼働しました');
break;
case AudioEvent.AUDIO_USAGE_STATE_CHANGE:
// オーディオの使用状態が変更されたときにトリガーされます。
// パラメーター:
// - usage: AudioUsageType列挙値
// - active:使用タイプがアクティブになったかどうかを示すブール値
console.log('使用タイプ:', event.usage);
console.log('アクティブ状態:', event.active);
break;
case AudioEvent.MIC_MUTE_STATE_UPDATE:
// マイクのミュート状態が変更されたときにトリガーされます。
// パラメーター:
// - state:マイクがミュートになっているかどうかを示すブール値
console.log('マイクのミュート状態が変更されました:', event.muteState);
break;
case AudioEvent.VOLUME_MUTE_UPDATE:
// 特定の音量タイプの音量ミュート状態が変更されたときにトリガーされます。
// パラメーター:
// - volumeType: AudioVolumeType列挙値
// - mute:タイプがミュートになっているかどうかを示すブール値
console.log('音量タイプ:', event.volumeType);
console.log('ミュート状態:', event.muteState);
break;
case AudioEvent.TELEPHONY_MUTE_UPDATE:
// 電話のミュート状態が変更されたときにトリガーされます。
// パラメーター:
// - deviceType: AudioDevice列挙値
// - address:デバイスアドレスを表す文字列
// - deviceName:デバイス名を表す文字列
// - mute:電話がミュートになっているかどうかを示すブール値
console.log('電話のミュート状態が更新されました:');
console.log('デバイスタイプ:', event.deviceType);
console.log('デバイスアドレス:', event.deviceAddress);
console.log('デバイス名:', event.deviceName);
console.log('デバイスのミュート状態:', event.muteState);
break;
}
});
// クリーンアップします。
await AudioManager.unregisterAudioEventObserverAsync();
AudioManager.unregisterAudioEventObserverAsync()
説明
現在登録されているコールバック関数を登録解除します。登録されているコールバックがない場合は何もしません。
戻り値
AudioStatus型に解決されるPromiseを返します。
サンプルコード
/*
コールバック関数の登録を解除し、Promiseの解決後に返されたAudioStatus型を
statusに格納します。
*/
const status = AudioManager.unregisterAudioEventObserverAsync().then((status) => {return status;}).catch((error) => console.log(error));
AudioManager.isServerReadyAsync()
説明
AudioServerがコマンドを処理できる状態にあるかどうかを確認します。
戻り値
サーバーの準備が整っているかどうかを示すブール値に解決されるPromiseを返します。
サンプルコード
// サーバーがコマンドを受信できる状態にある場合はtrueを、そうでない場合はfalseを返します。
const server_ready = AudioManager.isServerReadyAsync()
.then((ready) => {return ready;}).catch((error) => console.log(error));
AudioManager.setTelephonyMuteAsync(device, address, mute)
説明
電話のアップリンクをミュート/ミュート解除します。
戻り値
オーディオステータスコード(AudioStatus型)を含むPromiseを返します
パラメーター
必要な権限:com.amazon.audio.privilege.settings.control
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| device | AudioDevice | ○ | ミュート状態を設定するデバイスタイプ |
| address | string | ○ | リクエストされたデバイスを指すアドレス |
| mute | boolean | ○ | リクエストされたミュート状態 |
サンプルコード
let muteStatus = await AudioManager.setTelephonyMuteAsync(AudioDevice.DEVICE_TELEPHONY, "0X859978AF", true);
if (muteStatus == 0) {
console.log("setTelephonyMuteAsync(): 結果: SUCCESS")
status = status + "setTelephonyMuteAsync():\nResult: SUCCESS\n";
} else {
console.log("setTelephonyMuteAsync(): 結果: ERROR: ", muteStatus);
status = status + "setTelephonyMuteAsync():\nResult: ERROR: " + muteStatus.toString() + "\n";
}
AudioManager.getTelephonyMuteAsync(device, address)
説明
電話のアップリンクをミュート/ミュート解除します。
戻り値
オーディオステータスコード(AudioStatus型)を含むPromiseを返します
パラメーター
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| device | AudioDevice | ○ | ミュート状態を設定するデバイスタイプ |
| address | string | ○ | リクエストされたデバイスを指すアドレス |
サンプルコード
let muteStatus = await AudioManager.getTelephonyMuteAsync(AudioDevice.DEVICE_TELEPHONY, "0X859978AF");
console.log("getTelephonyMuteAsync(): SUCCESS, Mute state: ", Boolean(muteStatus));
AudioManager.setActiveVolumeAsync(volume)
説明
アクティブストリームの音量を設定します。
戻り値
オーディオステータスコード(AudioStatus型)を含むPromiseを返します
パラメーター
必要な権限:com.amazon.audio.privilege.settings.control
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| volume | Int32/数値 | ○ | 0~100のリクエストされた音量 |
サンプルコード
export const testSetActiveVolumeAsync = async (volume: number) => {
let requestStatus = await AudioManager.setActiveVolumeAsync(parseInt(volume));
if (requestStatus == 0) {
console.log("setActiveVolumeAsyncが成功");
} else {
console.log("setActiveVolumeAsync(): ERROR: " + requestStatus);
}
};
AudioManager.updateVolumeAsync(type, mode)
説明
特定のタイプ(例:音楽/通知)の音量を更新します
戻り値
オーディオステータスコード(AudioStatus型)を含むPromiseを返します
パラメーター
必要な権限:com.amazon.audio.privilege.settings.control
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| type | AudioVolumeType | ○ | 更新する音量タイプ |
| mode | Int32 | ○ | 0=増加、1=減少 |
サンプルコード
const testUpdateVolumeAsync = async () => {
let updateStatus = await AudioManager.updateVolumeAsync(AudioVolumeType.VOLUME_TYPE_MEDIA, 0);
if (updateStatus == 0) {
console.log("updateVolumeAsync()が成功");
} else {
console.log("updateVolumeAsync(): ERROR: " + updateStatus);
}
};
AudioManager.updateActiveVolumeAsync(update, fallbackType)
説明
アクティブストリームの音量を更新します。アクティブなストリームがない場合、オーディオサーバーはフォールバックタイプの音量を設定します
戻り値
オーディオステータスコード(AudioStatus型)を含むPromiseを返します
パラメーター
必要な権限:com.amazon.audio.privilege.settings.control |パラメーター名 |型 |必須 |説明 | |— |— |— |— | |update |Int32 |はい |0=増加、1=減少 | |fallbackType |VolumeType |はい |更新する音量タイプ |
サンプルコード
const testUpdateActiveVolumeAsync = async () => {
let updateStatus = await AudioManager.updateActiveVolumeAsync(0, AudioVolumeType.VOLUME_TYPE_MEDIA);
if (updateStatus == 0) {
console.log("updateActiveVolumeAsync()が成功");
} else {
console.log("updateActiveVolumeAsync(): ERROR: " + updateStatus);
}
};
AudioManager.setMuteAsync(volType, mute)
説明
オーディオ音量タイプのミュートを設定します。trueに設定すると、個々のストリームの音量に関係なく、音量タイプのオーディオ出力は無音になります。
戻り値
オーディオステータスコード(AudioStatus型)を含むPromiseを返します
パラメーター
必要な権限:com.amazon.audio.privilege.settings.control
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| volType | AudioVolumeType | ○ | ミュートする音量タイプ |
| mute | boolean | ○ | ミュート状態がリクエストされました |
サンプルコード
const testSetMuteAsync = async () => {
let updateStatus = await AudioManager.setMuteAsync(AudioVolumeType.VOLUME_TYPE_MEDIA, true);
if (updateStatus == 0) {
console.log("setMuteAsync()が成功");
} else {
console.log("setMuteAsync(): ERROR: " + updateStatus);
}
};
AudioManager.getMuteAsync(volType)
説明
オーディオ音量タイプの現在のミュート状態を照会します
戻り値
ミュート状態(boolean)を含むPromiseを返します
パラメーター
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| volType | AudioVolumeType | ○ | ミュート状態を照会する音量タイプ |
サンプルコード
const testGetMuteAsync = async () => {
let muteStatus = await AudioManager.setMuteAsync(AudioVolumeType.VOLUME_TYPE_MEDIA);
console.log("setMuteAsync(): SUCCESS, Mute state: ", Boolean(muteStatus));
};
AudioManager.setMaxVolumeAsync(maxVolume)
説明
最大音量制限を設定します。クライアントはこのAPIを使用して、すべてのタイプの音量レベルに最大制限を設定できます。デフォルトでは最大音量制限は100ですが、このAPIを使用して0〜100に設定できます。
戻り値
オーディオステータスコード(AudioStatus型)を含むPromiseを返します
パラメーター
必要な権限:com.amazon.audio.privilege.settings.control
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| maxVolume | Int32 | ○ | 実際の最大音量に対するパーセンテージで表した新しい最大制限 |
サンプルコード
const testSetMaxVolume = async () => {
let volumeChangeStatus = await AudioManager.setMaxVolumeAsync(50);
if (volumeChangeStatus == 0) {
console.log("setMaxVolumeAsync()が成功");
} else {
console.log("setMaxVolumeAsync(): ERROR: " + volumeChangeStatus);
}
};
AudioManager.getMaxVolumeAsync()
説明
最大音量制限を取得します。setMaxVolume() APIを使用して以前に設定された最大音量制限またはシステムのデフォルト値を取得します(値0~100)。
戻り値
現在の最大音量制限(Int32)を含むPromiseを返します。
パラメーター
| パラメーター名 | 型 | 必須 | 説明 | | ————– | —- | ——– | ———– |
サンプルコード
const testGetMaxVolume = async () => {
let maxVolume = await AudioManager.getMaxVolumeAsync();
console.log("getMaxVolumeAsync(): SUCCESS, Max volume: ", maxVolume);
};
AudioManager.getSupportedPlaybackConfigurationsAsync(attributes, deviceType)
説明
最大音量制限を設定します。クライアントはこのAPIを使用して、すべてのタイプの音量レベルに最大制限を設定できます。デフォルトでは最大音量制限は100ですが、このAPIを使用して0〜100に設定できます。
戻り値
指定されたパラメーターでサポートされるすべてのオーディオ構成を格納するオブジェクトの配列を含むPromiseを返します。受信したオブジェクトの構造には次の要素が含まれます。{
- sampleRate: AudioSampleRate
- channelMask: AudioChannelMask
- format: AudioSampleFormat
- layout: SampleLayout
}
パラメーター
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| attributes | AudioAttributes | ○ | 照会するオーディオ属性 |
| deviceType | AudioDevice | ○ | 照会するオーディオデバイスのタイプ |
注: 現在のオーディオデバイスの場合はAudioDevice.DEVICE_DEFAULTを使用してください。
サンプルコード
let supportedAudioConfigs = await AudioManager.getSupportedPlaybackConfigurationsAsync(configAttr, AudioDevice.DEVICE_DEFAULT);
for (let audioConfig: supportedAudioConfigs) {
console.log("フォーマット", audioConfig.format);
console.log("サンプルレート", audioConfig.sampleRate);
console.log("チャンネルマスク", audioConfig.channelMask);
console.log("レイアウト", audioConfig.layout);
}
AudioManager.setSinkFormatsSelectionPolicyAsync(policy)
説明
オーディオシンクフォーマット選択ポリシーを設定します
戻り値
オーディオステータスコード(AudioStatus型)を含むPromiseを返します
パラメーター
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| policy | SinkFormatsSelectionPolicy | ○ | 適用されるシンクポリシー |
サンプルコード
const testSetSinkFormatsSelectionPolicyAsync = async () => {
let sinkStatus = await AudioManager.setSinkFormatsSelectionPolicyAsync(SinkFormatsSelectionPolicy.AUTO);
if (sinkStatus == 0) {
console.log("setSinkFormatsSelectionPolicyAsync(): 結果: SUCCESS")
} else {
console.log("setSinkFormatsSelectionPolicyAsync(): 結果: ERROR: ", sinkStatus);
}
};
AudioManager.getSinkFormatsSelectionPolicyAsync()
説明
現在のオーディオシンクモードフォーマット選択ポリシーを取得します
戻り値
現在の選択ポリシー(Int32)を含むPromiseを返します
パラメーター
| パラメーター名 | 型 | 必須 | 説明 | | ————– | —- | ——– | ———– |
サンプルコード
const testGetSinkFormatsSelectionPolicyAsync = async () => {
let currentSinkPolicy = await AudioManager.getSinkFormatsSelectionPolicyAsync();
console.log("getSinkFormatsSelectionPolicyAsync() 現在のフォーマット:", currentSinkPolicy);
};
AudioManager.getSupportedSinkFormatsSelectionPoliciesAsync()
説明
サポート対象のすべてのシンクフォーマット選択ポリシーのリストを取得します。
戻り値
サポート対象のすべてのポリシーの配列を含むPromiseを返します。
パラメーター
| パラメーター名 | 型 | 必須 | 説明 | | ————– | —- | ——– | ———– |
サンプルコード
const testGetSupportedSinkFormatsSelectionPoliciesAsync = async () => {
let supportedSinkFormats = await AudioManager.getSupportedSinkFormatsSelectionPoliciesAsync();
if (supportedSinkFormats.length > 0) {
supportedSinkFormats.forEach(data => {
console.log("サポート対象ポリシー(整数表現):", parseInt(data), "\n");
});
}
};
Last updated: 2025年10月2日

