AudioTrack 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。
[Android.Runtime.Register("android/media/AudioTrack", DoNotGenerateAcw=true)]
public class AudioTrack : Java.Lang.Object, Android.Media.IAudioRouting, Android.Media.IVolumeAutomation, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/media/AudioTrack", DoNotGenerateAcw=true)>]
type AudioTrack = class
inherit Object
interface IAudioRouting
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IVolumeAutomation
- 繼承
- 屬性
- 實作
備註
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 它允許將 PCM 音訊緩衝區串流至音訊接收進行播放。 這是藉由使用、 和 #write(float[], int, int, int)
方法之#write(byte[], int, int)
#write(short[], int, int)
一將數據「推送」至 AudioTrack 對象來達成。
AudioTrack 實例可以在兩種模式下運作:靜態或串流。<br> 在串流模式中,應用程式會使用其中 write()
一種方法,將連續數據流寫入 AudioTrack。 當數據從 Java 層傳輸至原生層並排入佇列播放時,這些會封鎖和傳回。 串流模式在播放實例的音訊數據區塊時最有用:
<ul><li>太大而無法放入記憶體中,因為聲音的播放持續時間過大,</李麗><>太大而無法放入記憶體中,因為音訊數據的特性(取樣率高,每個樣本的位數...)</li li><在>先前佇列的音訊播放時接收或產生。</li></ul>
處理符合記憶體的簡短音效時,應該選擇靜態模式,而且需要盡可能以最小的延遲播放。 因此,靜態模式對於經常播放的UI和遊戲音效而言是慣用的,而且可能會有最小的額外負荷。
建立時,AudioTrack 物件會初始化其相關聯的音訊緩衝區。 在建構期間指定的這個緩衝區大小會決定 AudioTrack 在數據用完之前可以播放的時間長度。<br> 針對使用靜態模式的 AudioTrack,此大小是可從其中播放的音效大小上限。<br> 對於串流模式,數據會以小於或等於緩衝區大小總計的大社區塊寫入音訊接收。
AudioTrack 不是最終專案,因此允許子類別,但不建議使用這類類別。
的 android.media.AudioTrack
Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
AudioTrack(AudioAttributes, AudioFormat, Int32, AudioTrackMode, Int32) |
具有和 |
AudioTrack(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
AudioTrack(Stream, Int32, ChannelConfiguration, Encoding, Int32, AudioTrackMode) |
已淘汰.
類別建構函式。 |
AudioTrack(Stream, Int32, ChannelConfiguration, Encoding, Int32, AudioTrackMode, Int32) |
已淘汰.
具有音訊會話的類別建構函式。 |
AudioTrack(Stream, Int32, ChannelOut, Encoding, Int32, AudioTrackMode) |
類別建構函式。 |
AudioTrack(Stream, Int32, ChannelOut, Encoding, Int32, AudioTrackMode, Int32) |
具有音訊會話的類別建構函式。 |
欄位
DualMonoModeLl |
已淘汰.
此模式表示立體串流應該會顯示複寫到右側音訊通道的左側音訊通道。 |
DualMonoModeLr |
已淘汰.
此模式表示立體串流應呈現混合在一起的左右音訊通道,並傳遞至這兩個通道。 |
DualMonoModeOff |
已淘汰.
此模式會停用任何雙單聲道呈現效果。 |
DualMonoModeRr |
已淘汰.
此模式表示應該會顯示立體串流,並將右側音訊通道復寫到左側音訊通道。 |
EncapsulationMetadataTypeDvbAdDescriptor |
已淘汰.
封裝 DVB AD 描述元的元數據類型。 |
EncapsulationMetadataTypeFrameworkTuner |
已淘汰.
封裝架構微調器資訊的元數據類型。 |
EncapsulationMetadataTypeSupplementaryAudioPlacement |
已淘汰.
封裝補充音訊位置的元數據類型。 |
EncapsulationModeElementaryStream |
已淘汰.
此模式表示具有基本數據流承載的元數據封裝。 |
EncapsulationModeNone |
已淘汰.
此模式表示沒有元數據封裝,這是透過 |
Error |
已淘汰.
表示泛型作業失敗。 |
ErrorBadValue |
已淘汰.
表示因使用無效值而失敗。 |
ErrorDeadObject |
已淘汰.
錯誤碼,指出報告它的物件已不再有效,而且需要重新建立。 |
ErrorInvalidOperation |
已淘汰.
表示因方法使用不當而失敗。 |
Success |
已淘汰.
表示成功的作業。 |
SupplementaryAudioPlacementLeft |
已淘汰.
左側補充音訊位置。 |
SupplementaryAudioPlacementNormal |
已淘汰.
補充音訊放置正常。 |
SupplementaryAudioPlacementRight |
已淘汰.
補充音訊放置權。 |
屬性
AudioAttributes |
傳 |
AudioDescriptionMixLeveldB |
傳回 dB 中的音訊描述混合層級。 |
AudioFormat |
傳回設定的音訊數據編碼。 |
AudioSessionId |
傳回音訊會話標識碼。 |
BufferCapacityInFrames |
傳回框架中緩衝區的大小 |
BufferSizeInFrames |
傳回應用程式寫入之緩衝區的有效 |
ChannelConfiguration |
傳回已設定的通道位置遮罩。 |
ChannelCount |
傳回已設定的通道數目。 |
Class |
傳回這個 |
DualMonoMode |
會傳回雙單聲道模式簡報設定。 |
Format |
傳回已設定 |
Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
IsOffloadedPlayback |
傳回追蹤是否已使用 設定為 |
JniIdentityHashCode |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 (繼承來源 Object) |
JniPeerMembers |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 |
LogSessionId |
傳回 |
MaxVolume |
傳回最大收益值,大於或等於 1。 |
Metrics |
傳回有關目前 AudioTrack 實例的計量數據。 |
MinVolume |
傳回最小值,也就是常數 0。 |
NativeFrameCount |
已淘汰.
傳回原生 |
NotificationMarkerPosition |
傳回以框架表示的標記位置。 |
OffloadDelay |
傳回卸除追蹤的譯碼器延遲,以先前以 所設定 |
OffloadPadding |
傳回卸除追蹤的譯碼器填補,以框架表示,先前設定為 |
PeerReference |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 (繼承來源 Object) |
PerformanceMode |
傳回的 |
PlaybackHeadPosition |
傳回以畫面格表示的播放前端位置。 |
PlaybackParams |
傳回目前的播放參數。 -或- 設定播放參數。 |
PlaybackRate |
傳回 Hz 中的目前播放取樣率。 |
PlayState |
傳回 AudioTrack 實例的播放狀態。 |
PositionNotificationPeriod |
傳回以畫面格表示的通知更新期間。 |
PreferredDevice |
傳回 所 |
RoutedDevice |
傳 |
SampleRate |
傳回 Hz 中設定的音訊來源取樣率。 |
StartThresholdInFrames |
傳回的 |
State |
傳回 AudioTrack 實例的狀態。 |
StreamType |
傳回這個 AudioTrack 的音量數據流類型。 |
ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
UnderrunCount |
傳回自建立 AudioTrack 之後,應用層級寫入緩衝區中出現的不足次數。 |
方法
AddOnCodecFormatChangedListener(IExecutor, AudioTrack+IOnCodecFormatChangedListener) |
|
AddOnRoutingChangedListener(AudioTrack+IOnRoutingChangedListener, Handler) |
新增 , |
AddOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener, Handler) |
新增 , |
AttachAuxEffect(Int32) |
將輔助效果附加至音訊播放軌。 |
Clone() |
建立並傳回這個 對象的複本。 (繼承來源 Object) |
CreateVolumeShaper(VolumeShaper+Configuration) |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 |
Dispose() |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 (繼承來源 Object) |
Dispose(Boolean) |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 (繼承來源 Object) |
Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
Flush() |
排清目前已排入佇列播放的音訊數據。 |
GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
GetMinBufferSize(Int32, ChannelOut, Encoding) |
傳回在模式中 |
GetNativeOutputSampleRate(Stream) |
針對指定的數據流類型,傳回 Hz 中的輸出取樣率。 |
GetTimestamp(AudioTimestamp) |
視需要輪詢時間戳。 |
IsDirectPlaybackSupported(AudioFormat, AudioAttributes) |
傳回系統上目前是否支援直接播放具有所提供屬性的音訊格式。 |
JavaFinalize() |
當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。 (繼承來源 Object) |
Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
Pause() |
暫停音訊數據的播放。 |
Play() |
開始播放 AudioTrack。 |
RegisterStreamEventCallback(IExecutor, AudioTrack+StreamEventCallback) |
註冊數據流事件通知的回呼。 |
Release() |
釋放原生 AudioTrack 資源。 |
ReloadStaticData() |
將靜態緩衝區內的播放前端位置設定為零,也就是倒轉為靜態緩衝區的開頭。 |
RemoveOnCodecFormatChangedListener(AudioTrack+IOnCodecFormatChangedListener) |
|
RemoveOnRoutingChangedListener(AudioTrack+IOnRoutingChangedListener) |
|
RemoveOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener) |
|
SetAudioDescriptionMixLeveldB(Single) |
設定 dB 中的音訊描述混合層級。 |
SetAuxEffectSendLevel(Single) |
將音訊播放軌的傳送層級設定為附加的輔助效果 |
SetBufferSizeInFrames(Int32) |
限制應用程式寫入之緩衝區的有效 |
SetDualMonoMode(Int32) |
設定輸出裝置上的雙重 Mono 模式簡報。 |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
SetLoopPoints(Int32, Int32, Int32) |
設定迴圈點和循環計數。 |
SetNotificationMarkerPosition(Int32) |
設定通知標記的位置。 |
SetOffloadDelayPadding(Int32, Int32) |
設定目前壓縮數據流在卸除模式中播放的延遲和填補值。 |
SetOffloadEndOfStream() |
宣告此追蹤上的最後一個 write() 作業會提供此數據流的最後一個緩衝區。 |
SetPlaybackHeadPosition(Int32) |
設定靜態緩衝區內的播放前端位置。 |
SetPlaybackPositionUpdateListener(AudioTrack+IOnPlaybackPositionUpdateListener) |
設定 AudioTrack 在達到先前設定標記或每次定期播放前端位置更新時通知的接聽程式。 |
SetPlaybackPositionUpdateListener(AudioTrack+IOnPlaybackPositionUpdateListener, Handler) |
設定 AudioTrack 在達到先前設定標記或每次定期播放前端位置更新時通知的接聽程式。 |
SetPlaybackRate(Int32) |
設定此播放軌的播放取樣率。 |
SetPositionNotificationPeriod(Int32) |
設定定期通知事件的期間。 |
SetPreferredDevice(AudioDeviceInfo) |
指定音訊裝置(透過 |
SetPresentation(AudioPresentation) |
設定音訊簡報。 |
SetStartThresholdInFrames(Int32) |
設定的串流啟動臨界值 |
SetState(Int32) |
已淘汰.
設定實例的初始化狀態。 |
SetStereoVolume(Single, Single) |
已淘汰.
在 AudioTrack 上設定指定的左右輸出增益值。 |
SetVolume(Single) |
設定此播放軌所有通道的指定輸出增益值。 |
Stop() |
停止播放音訊數據。 |
ToArray<T>() |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 (繼承來源 Object) |
ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
UnregisterFromRuntime() |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 (繼承來源 Object) |
UnregisterStreamEventCallback(AudioTrack+StreamEventCallback) |
取消註冊數據流事件的通知回呼,先前已向 |
Wait() |
讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
Write(Byte[], Int32, Int32) |
將音訊數據寫入音訊接收以進行播放(串流模式),或複製音訊數據以供稍後播放(靜態緩衝區模式)。 |
Write(Byte[], Int32, Int32, WriteMode) |
將音訊數據寫入音訊接收以進行播放(串流模式),或複製音訊數據以供稍後播放(靜態緩衝區模式)。 |
Write(ByteBuffer, Int32, WriteMode) |
將音訊數據寫入音訊接收以進行播放(串流模式),或複製音訊數據以供稍後播放(靜態緩衝區模式)。 |
Write(ByteBuffer, Int32, WriteMode, Int64) |
將音訊數據寫入音訊接收,以在HW_AV_SYNC曲目上以串流模式播放。 |
Write(Int16[], Int32, Int32) |
將音訊數據寫入音訊接收以進行播放(串流模式),或複製音訊數據以供稍後播放(靜態緩衝區模式)。 |
Write(Int16[], Int32, Int32, WriteMode) |
將音訊數據寫入音訊接收以進行播放(串流模式),或複製音訊數據以供稍後播放(靜態緩衝區模式)。 |
Write(Single[], Int32, Int32, WriteMode) |
將音訊數據寫入音訊接收以進行播放(串流模式),或複製音訊數據以供稍後播放(靜態緩衝區模式)。 |
WriteAsync(Byte[], Int32, Int32) |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 |
WriteAsync(Byte[], Int32, Int32, WriteMode) |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 |
WriteAsync(ByteBuffer, Int32, WriteMode) |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 |
WriteAsync(ByteBuffer, Int32, WriteMode, Int64) |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 |
WriteAsync(Int16[], Int32, Int32) |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 |
WriteAsync(Int16[], Int32, Int32, WriteMode) |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 |
WriteAsync(Single[], Int32, Int32, WriteMode) |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 |
事件
MarkerReached |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 |
PeriodicNotification |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 |
RoutingChanged |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 |
明確介面實作
IJavaPeerable.Disposed() |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 (繼承來源 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 (繼承來源 Object) |
IJavaPeerable.Finalized() |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 (繼承來源 Object) |
IJavaPeerable.JniManagedPeerState |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 (繼承來源 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 (繼承來源 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 (繼承來源 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 (繼承來源 Object) |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 |
GetJniTypeName(IJavaPeerable) |
AudioTrack 類別會管理及播放 Java 應用程式的單一音訊資源。 |