我已经实现了一个写入AudioTrack
对象的 PCM 解码器。
AudioTrack
一切似乎都很好,但是,当最后一个写入的块停止播放时,我需要从对象获得某种通知。
我注意到有一些回调方法,setNotificationMarkerPosition,
但是我找不到任何关于如何使用它们的广泛文档。
提前致谢!
要获得AudioTrack
回调,您可以设置标记回调或使用周期性回调。我已经看到有关标记问题的报告,因此您可能想尝试两者。
对于标记回调,首先setNotificationMarkerPosition
使用您想要调用的任何帧号进行调用。
对于定期回调,请改为调用setPositionNotificationPeriod
,它将每x帧调用一次。
无论哪种方式,您都需要调用setPlaybackPositionUpdateListener
以注册回调。这将调用两个方法,onMarkerReached
如果它到达一个标记,或者onPeriodicNotification
每个设定的帧数。您可以选择使用其中一个,或两者都使用。AudioTrack
两个回调都引用了您用来设置它的实例。
默认情况下,它将在AudioTrack
创建实例的同一线程中回调。或者,您可以在注册回调时传递一个处理程序以将其发送到另一个线程。