AudioTrack 类

定义

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
属性
实现

注解

AudioTrack 类管理并播放 Java 应用程序的单个音频资源。 它允许将 PCM 音频缓冲区流式传输到音频接收器进行播放。 这是通过使用其中一个#write(byte[], int, int)#write(short[], int, int)#write(float[], int, int, int)方法将数据“推送”到 AudioTrack 对象来实现的。

AudioTrack 实例可以在两种模式下运行:静态模式或流式处理。<在> 流式处理模式下,应用程序使用其中 write() 一种方法将连续数据流写入 AudioTrack。 当数据从 Java 层传输到本机层并排队播放时,这些数据会阻塞和返回。 播放音频数据块时,流式处理模式最有用,例如:

<由于><声音的播放<持续时间过大,李<>>丽>太大而无法容纳在内存中,因为音频数据的特征(采样率高,采样率高...)</li li><>接收或生成之前排队的音频正在播放。</li></ul>

在处理适合内存中的简短声音并且需要尽可能少的延迟播放时,应选择静态模式。 因此,静态模式对于经常播放的 UI 和游戏声音是首选的,并且可能开销最小。

创建后,AudioTrack 对象将初始化其关联的音频缓冲区。 此缓冲区的大小(在构造期间指定)确定 AudioTrack 在数据耗尽之前可以播放多长时间。<br> 对于使用静态模式的 AudioTrack,此大小是可从中播放的声音的最大大小。<br> 对于流式处理模式,数据将以小于或等于总缓冲区大小的区块写入音频接收器。

AudioTrack 不是最终类,因此允许子类,但不建议使用此类。

适用于 . 的 android.media.AudioTrackJava 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

构造函数

AudioTrack(AudioAttributes, AudioFormat, Int32, AudioTrackMode, Int32)

包含和 AudioFormat. 的AudioAttributes类构造函数。

AudioTrack(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

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
已过时.

此模式表示没有元数据封装,这是通过 AudioTrack发送音频数据的默认模式。

Error
已过时.

表示泛型操作失败。

ErrorBadValue
已过时.

表示由于使用无效值而导致的失败。

ErrorDeadObject
已过时.

一个错误代码,指示报告它的对象不再有效,需要重新创建。

ErrorInvalidOperation
已过时.

表示由于方法使用不当而导致的失败。

Success
已过时.

表示成功的操作。

SupplementaryAudioPlacementLeft
已过时.

左侧补充音频放置。

SupplementaryAudioPlacementNormal
已过时.

补充音频放置正常。

SupplementaryAudioPlacementRight
已过时.

补充音频放置权限。

属性

AudioAttributes

返回 AudioAttributes 配置中使用的值。

AudioDescriptionMixLeveldB

返回 dB 中的音频说明混合级别。

AudioFormat

返回配置的音频数据编码。

AudioSessionId

返回音频会话 ID。

BufferCapacityInFrames

返回帧中缓冲区的最大大小 AudioTrack

BufferSizeInFrames

返回应用程序写入的 AudioTrack 缓冲区的有效大小。

ChannelConfiguration

返回配置的通道位置掩码。

ChannelCount

返回配置的通道数。

Class

返回此 Object的运行时类。

(继承自 Object)
DualMonoMode

返回双单声道模式演示设置。

Format

返回配置的 AudioTrack 格式。

Handle

基础 Android 实例的句柄。

(继承自 Object)
IsOffloadedPlayback

返回是否生成了设置为Builder#setOffloadedPlayback(boolean)true的曲目。

JniIdentityHashCode

AudioTrack 类管理并播放 Java 应用程序的单个音频资源。

(继承自 Object)
JniPeerMembers

AudioTrack 类管理并播放 Java 应用程序的单个音频资源。

LogSessionId

返回 LogSessionId。 - 或 - 为 LogSessionId 指标集合设置此 AudioTrack 的实例。

MaxVolume

返回大于或等于 1 的最大增益值。

Metrics

返回有关当前 AudioTrack 实例的指标数据。

MinVolume

返回最小值,即常量 0。

NativeFrameCount
已过时.

返回本机 AudioTrack 缓冲区的帧计数。

NotificationMarkerPosition

返回以帧表示的标记位置。

OffloadDelay

返回卸载轨迹的解码器延迟,以帧表示,以前使用 #setOffloadDelayPadding(int, int) 设置,或 0(如果从未修改)。

OffloadPadding

返回卸载轨道的解码器填充,以帧表示,以前使用 #setOffloadDelayPadding(int, int)或 0 设置的帧(如果从未修改)。

PeerReference

AudioTrack 类管理并播放 Java 应用程序的单个音频资源。

(继承自 Object)
PerformanceMode

返回当前性能模式 AudioTrack

PlaybackHeadPosition

返回以帧表示的播放头位置。

PlaybackParams

返回当前播放参数。 - 或 - 设置播放参数。

PlaybackRate

返回 Hz 中的当前播放采样率。

PlayState

返回 AudioTrack 实例的播放状态。

PositionNotificationPeriod

返回以帧表示的通知更新周期。

PreferredDevice

返回由 #setPreferredDevice.. 指定的选定输出。

RoutedDevice

返回一个 AudioDeviceInfo 标识此 AudioTrack 的当前路由。

SampleRate

返回 Hz 中配置的音频源采样率。

StartThresholdInFrames

返回流 AudioTrack式处理开始阈值 。

State

返回 AudioTrack 实例的状态。

StreamType

返回此 AudioTrack 的音量流类型。

ThresholdClass

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

UnderrunCount

返回自创建 AudioTrack 以来应用程序级写入缓冲区中的运行不足次数。

方法

AddOnCodecFormatChangedListener(IExecutor, AudioTrack+IOnCodecFormatChangedListener)

添加一个 OnCodecFormatChangedListener ,用于接收对此 AudioTrack的编解码器格式更改事件的通知。

AddOnRoutingChangedListener(AudioTrack+IOnRoutingChangedListener, Handler)

添加用于 AudioRouting.OnRoutingChangedListener 接收此 AudioTrack 上路由更改的通知。

AddOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener, Handler)

添加用于 AudioRouting.OnRoutingChangedListener 接收此 AudioTrack 上路由更改的通知。

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)

返回在模式下创建的 #MODE_STREAM AudioTrack 对象所需的估计最小缓冲区大小。

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)

删除之前添加的用于接收编解码器格式更改事件的目录 OnCodecFormatChangedListener

RemoveOnRoutingChangedListener(AudioTrack+IOnRoutingChangedListener)

删除以前添加的用于接收重新路由通知的项 AudioRouting.OnRoutingChangedListener

RemoveOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener)

删除以前添加的用于接收重新路由通知的项 AudioRouting.OnRoutingChangedListener

SetAudioDescriptionMixLeveldB(Single)

设置 dB 中的音频说明混合级别。

SetAuxEffectSendLevel(Single)

将音频轨道的发送级别设置为附加的辅助效果 #attachAuxEffect(int)

SetBufferSizeInFrames(Int32)

限制应用程序写入的 AudioTrack 缓冲区的有效大小。

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)

指定音频设备(通过 AudioDeviceInfo 对象)来路由此 AudioTrack 的输出。

SetPresentation(AudioPresentation)

设置音频演示文稿。

SetStartThresholdInFrames(Int32)

设置流式处理启动阈值 AudioTrack

SetState(Int32)
已过时.

设置实例的初始化状态。

SetStereoVolume(Single, Single)
已过时.

设置 AudioTrack 上的指定左右输出增益值。

SetVolume(Single)

在此轨道的所有通道上设置指定的输出增益值。

Stop()

停止播放音频数据。

ToArray<T>()

AudioTrack 类管理并播放 Java 应用程序的单个音频资源。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

AudioTrack 类管理并播放 Java 应用程序的单个音频资源。

(继承自 Object)
UnregisterStreamEventCallback(AudioTrack+StreamEventCallback)

取消注册流事件的通知回调,以前注册到 #registerStreamEventCallback(Executor, StreamEventCallback)该回调。

Wait()

使当前线程等待,直到唤醒它,通常是通过 em 通知/em> 或 <em>interrupted</em>。<><

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</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 应用程序的单个音频资源。

适用于