コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
audio_stream_out構造体リファレンス
#include < audio.h >
audio_stream_outは、オーディオ出力ハードウェアの抽象化インターフェイスです。
オーディオ出力ハードウェアドライバのさまざまなプロパティに関する情報を提供します。
ファイルaudio.hの276行で定義されています。
ドライバ/ハードウェアによってバッファリングされたデータが再生されたときに通知を要求します。非ブロッキングモードを有効にするためにset_callback()が以前に呼び出されている場合、 drain()はブロックしてはならず、代わりにすぐに戻り、コールバックを通じてドレインの完了が通知されます。 set_callback()が呼び出されていない場合、 drain()は完了するまでブロックする必要があります。 type == AUDIO_DRAIN_ALLの場合、以前に書き込まれたすべてのデータが再生されると、ドレインが完了します。 type == AUDIO_DRAIN_EARLY_NOTIFYの場合、現在のトラックのすべてのデータが再生される直前にドレインが完了し、フレームワークがギャップレストラックスイッチを実行できるようになります。
ドレインは、stop()およびflush()呼び出しですぐに戻る必要があります
オフロード再生では、この機能の実装が必須です。
ファイルaudio.hの372行で定義されています。
キューに入れられたデータをフラッシュするようにオーディオドライバに通知します。 flush()を呼び出す前に、ストリームを一時停止しておく必要があります。
オフロード再生では、この機能の実装が必須です。
ファイルaudio.hの380行で定義されています。
オーディオハードウェアドライバーの推定レイテンシーをミリ秒単位で返します。
ファイルaudio.hの287行で定義されています。
int(* get_next_write_timestamp)(const struct audio_stream_out * stream、int64_t * timestamp) |
オーディオドライバへの次の書き込みが表示される現地時間を取得します。単位はマイクロ秒で、エポックはローカルオーディオHALによって決定されます。
ファイルaudio.hの324行で定義されています。
int(* get_presentation_position)(const struct audio_stream_out * stream、uint64_t * frames、struct timespec * timestamp) |
外部オブザーバーに提示されたオーディオフレーム数の最近のカウントを返します。これは、書き込まれたがまだパイプラインにあるフレームを除外します。出力がスタンバイになっても、カウントはゼロにリセットされません。また、このプレゼンテーションカウントの時点でのCLOCK_MONOTONICの値を返します。返されるカウントは「最近」であると予想されますが、可能な限り最新の値である必要はありません。ただし、関連付けられた時間は、返されるカウントに対応している必要があります。例:N + Mフレームが提示されていると仮定します。ここで、Mは「小さい」数です。その場合、N + Mの代わりにNを返すことが許可され、タイムスタンプはN+MではなくNに対応する必要があります。 「最近」および「小さい」という用語は定義されていません。それらは実装の品質を反映しています。
3.0以降のみ。
ファイルaudio.hの398行で定義されています。
int(* get_render_position)(const struct audio_stream_out * stream、uint32_t * dsp_frames) |
再生を停止するようにオーディオドライバに通知しますが、キューに入れられたバッファはハードウェアによって保持されます。一時停止/再開を実装するのに便利です。ただし、サポートされていない場合は空の実装を、重要な遅延のあるハードウェアに実装する必要があります。一時停止状態でも、オーディオハードウェアはまだ電力を使用している可能性があります。ユーザーは、タイムアウト後にサスペンドを呼び出すことを検討できます。
オフロード再生では、この機能の実装が必須です。
ファイルaudio.hの345行で定義されています。
一時停止後に再生を再開するようにオーディオドライバに通知します。一時停止に一致せずに呼び出された場合はエラーを返します。
オフロード再生では、この機能の実装が必須です。
ファイルaudio.hの353行で定義されています。
非ブロッキング書き込みおよびドレインの完了を通知するためのコールバック関数を設定します。この関数を呼び出すことは、将来のすべてのwrite()およびdrain()が非ブロッキングであり、コールバックを使用して完了を通知する必要があることを意味します。
ファイルaudio.hの333行で定義されています。
この方法は、ハードウェアでオーディオミキシングが行われる状況で使用します。この方法は、ハードウェアとの直接インターフェースとして機能し、フレームワークを介してボリュームを直接設定できるようにします。この方法では、複数のPCM出力、またはMP3やAACなどのハードウェアアクセラレーションコーデックが生成される場合があります。
ファイルaudio.hの296行で定義されています。
ssize_t(* write)(struct audio_stream_out * stream、const void * buffer、size_t bytes) |
オーディオバッファをドライバに書き込みます。書き込まれたバイト数、または負のstatus_tを返します。エラーの前に少なくとも1つのフレームが正常に書き込まれた場合、ドライバーはその成功した(短い)バイトカウントを返し、その後の呼び出しでエラーを返すことをお勧めします。
非ブロックモードを有効にするためにset_callback()が以前に呼び出されている場合、 write()はブロックできません。ドライバー/ハードウェアバッファーに現在収まっているバイト数のみを書き込んでから、このバイトカウントを返す必要があります。これが要求された書き込みサイズよりも小さい場合、ドライバー/ハードウェアバッファーでより多くのスペースが使用可能になったときに、コールバック関数を呼び出す必要があります。
ファイルaudio.hの311行で定義されています。
この構造体のドキュメントは、次のファイルから生成されました。
- ハードウェア/libhardware/ include / hardware / audio.h
、
audio_stream_out構造体リファレンス
#include < audio.h >
audio_stream_outは、オーディオ出力ハードウェアの抽象化インターフェイスです。
オーディオ出力ハードウェアドライバのさまざまなプロパティに関する情報を提供します。
ファイルaudio.hの276行で定義されています。
ドライバ/ハードウェアによってバッファリングされたデータが再生されたときに通知を要求します。非ブロッキングモードを有効にするためにset_callback()が以前に呼び出されている場合、 drain()はブロックしてはならず、代わりにすぐに戻り、コールバックを通じてドレインの完了が通知されます。 set_callback()が呼び出されていない場合、 drain()は完了するまでブロックする必要があります。 type == AUDIO_DRAIN_ALLの場合、以前に書き込まれたすべてのデータが再生されると、ドレインが完了します。 type == AUDIO_DRAIN_EARLY_NOTIFYの場合、現在のトラックのすべてのデータが再生される直前にドレインが完了し、フレームワークがギャップレストラックスイッチを実行できるようになります。
ドレインは、stop()およびflush()呼び出しですぐに戻る必要があります
オフロード再生では、この機能の実装が必須です。
ファイルaudio.hの372行で定義されています。
キューに入れられたデータをフラッシュするようにオーディオドライバに通知します。 flush()を呼び出す前に、ストリームを一時停止しておく必要があります。
オフロード再生では、この機能の実装が必須です。
ファイルaudio.hの380行で定義されています。
オーディオハードウェアドライバーの推定レイテンシーをミリ秒単位で返します。
ファイルaudio.hの287行で定義されています。
int(* get_next_write_timestamp)(const struct audio_stream_out * stream、int64_t * timestamp) |
オーディオドライバへの次の書き込みが表示される現地時間を取得します。単位はマイクロ秒で、エポックはローカルオーディオHALによって決定されます。
ファイルaudio.hの324行で定義されています。
int(* get_presentation_position)(const struct audio_stream_out * stream、uint64_t * frames、struct timespec * timestamp) |
外部オブザーバーに提示されたオーディオフレーム数の最近のカウントを返します。これは、書き込まれたがまだパイプラインにあるフレームを除外します。出力がスタンバイになっても、カウントはゼロにリセットされません。また、このプレゼンテーションカウントの時点でのCLOCK_MONOTONICの値を返します。返されるカウントは「最近」であると予想されますが、可能な限り最新の値である必要はありません。ただし、関連付けられた時間は、返されるカウントに対応している必要があります。例:N + Mフレームが提示されていると仮定します。ここで、Mは「小さい」数です。その場合、N + Mの代わりにNを返すことが許可され、タイムスタンプはN+MではなくNに対応する必要があります。 「最近」および「小さい」という用語は定義されていません。それらは実装の品質を反映しています。
3.0以降のみ。
ファイルaudio.hの398行で定義されています。
int(* get_render_position)(const struct audio_stream_out * stream、uint32_t * dsp_frames) |
再生を停止するようにオーディオドライバに通知しますが、キューに入れられたバッファはハードウェアによって保持されます。一時停止/再開を実装するのに便利です。ただし、サポートされていない場合は空の実装を、重要な遅延のあるハードウェアに実装する必要があります。一時停止状態でも、オーディオハードウェアはまだ電力を使用している可能性があります。ユーザーは、タイムアウト後にサスペンドを呼び出すことを検討できます。
オフロード再生では、この機能の実装が必須です。
ファイルaudio.hの345行で定義されています。
一時停止後に再生を再開するようにオーディオドライバに通知します。一時停止に一致せずに呼び出された場合はエラーを返します。
オフロード再生では、この機能の実装が必須です。
ファイルaudio.hの353行で定義されています。
非ブロッキング書き込みおよびドレインの完了を通知するためのコールバック関数を設定します。この関数を呼び出すことは、将来のすべてのwrite()およびdrain()が非ブロッキングであり、コールバックを使用して完了を通知する必要があることを意味します。
ファイルaudio.hの333行で定義されています。
この方法は、ハードウェアでオーディオミキシングが行われる状況で使用します。この方法は、ハードウェアとの直接インターフェースとして機能し、フレームワークを介してボリュームを直接設定できるようにします。この方法では、複数のPCM出力、またはMP3やAACなどのハードウェアアクセラレーションコーデックが生成される場合があります。
ファイルaudio.hの296行で定義されています。
ssize_t(* write)(struct audio_stream_out * stream、const void * buffer、size_t bytes) |
オーディオバッファをドライバに書き込みます。書き込まれたバイト数、または負のstatus_tを返します。エラーの前に少なくとも1つのフレームが正常に書き込まれた場合、ドライバーはその成功した(短い)バイトカウントを返し、その後の呼び出しでエラーを返すことをお勧めします。
非ブロックモードを有効にするためにset_callback()が以前に呼び出されている場合、 write()はブロックできません。ドライバー/ハードウェアバッファーに現在収まっているバイト数のみを書き込んでから、このバイトカウントを返す必要があります。これが要求された書き込みサイズよりも小さい場合、ドライバー/ハードウェアバッファーでより多くのスペースが使用可能になったときに、コールバック関数を呼び出す必要があります。
ファイルaudio.hの311行で定義されています。
この構造体のドキュメントは、次のファイルから生成されました。
- ハードウェア/libhardware/ include / hardware / audio.h
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2022-08-30 UTC。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"必要な情報がない"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"複雑すぎる / 手順が多すぎる"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"最新ではない"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻訳に関する問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"サンプル / コードに問題がある"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"その他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"わかりやすい"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"問題の解決に役立った"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"その他"
}]