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