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(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.AudioTrack
Java 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。
构造函数
AudioTrack(AudioAttributes, AudioFormat, Int32, AudioTrackMode, Int32) |
包含和 |
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 |
已过时.
此模式表示没有元数据封装,这是通过 |
Error |
已过时.
表示泛型操作失败。 |
ErrorBadValue |
已过时.
表示由于使用无效值而导致的失败。 |
ErrorDeadObject |
已过时.
一个错误代码,指示报告它的对象不再有效,需要重新创建。 |
ErrorInvalidOperation |
已过时.
表示由于方法使用不当而导致的失败。 |
Success |
已过时.
表示成功的操作。 |
SupplementaryAudioPlacementLeft |
已过时.
左侧补充音频放置。 |
SupplementaryAudioPlacementNormal |
已过时.
补充音频放置正常。 |
SupplementaryAudioPlacementRight |
已过时.
补充音频放置权限。 |
属性
AudioAttributes |
返回 |
AudioDescriptionMixLeveldB |
返回 dB 中的音频说明混合级别。 |
AudioFormat |
返回配置的音频数据编码。 |
AudioSessionId |
返回音频会话 ID。 |
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 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
ThresholdType |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
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 通知/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 应用程序的单个音频资源。 |