4

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

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

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

提前致谢!

4

1 回答 1

2

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

对于标记回调,首先setNotificationMarkerPosition使用您想要调用的任何帧号进行调用。

对于定期回调,请改为调用setPositionNotificationPeriod,它将每x帧调用一次。

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

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

于 2011-05-25T01:11:22.417 回答