来自AudioTrack流的通知消息

时间:2011-01-09 22:04:45

标签: java android pcm

我已经实现了一个写入AudioTrack对象的PCM解码器。

一切看起来都很棒,但是,当最后一个写入的块停止播放时,我需要从AudioTrack对象获得某种通知。

我注意到有一些回调方法,例如setNotificationMarkerPosition,但是,我找不到任何有关如何使用它们的大量文档。

提前致谢!

1 个答案:

答案 0 :(得分:2)

要获得AudioTrack回调,您可以设置标记回调或使用定期回调。我已经看到有关标记问题的报告,所以你可能想尝试两者。

对于标记回调,首先使用您想要呼叫的任何帧编号调用setNotificationMarkerPosition

对于定期回调,请调用setPositionNotificationPeriod,然后调用每个 x 帧。

无论哪种方式,您都需要调用setPlaybackPositionUpdateListener来注册回调。这将调用两个方法onMarkerReached(如果它到达标记)或onPeriodicNotification每个设定数量的帧。您可以选择使用其中一个或两个。两个回调都引用了您用来设置它的AudioTrack实例。

默认情况下,它将在创建AudioTrack实例的同一线程中回调。或者,您可以在注册回调时传递处理程序以将其发送到另一个线程。