我已经实现了一个PCM解码器,它可以写入AudioTrack
对象。
一切似乎都很好,但是,当最后写入的块停止播放时,我需要从AudioTrack
对象获得某种通知。
我注意到有一些回调方法,例如setNotificationMarkerPosition,
,但是我找不到如何使用它们的详尽文档。
提前致谢!
最佳答案
要获取AudioTrack
回调,您可以设置标记回调或使用定期回调。我已经看到有关标记器问题的报告,因此您可能要同时尝试两者。
对于标记回调,请首先使用所需的帧号调用setNotificationMarkerPosition
。
对于定期回调,请调用setPositionNotificationPeriod
,它将每x帧调用一次。
无论哪种方式,您都需要调用setPlaybackPositionUpdateListener
来注册回调。这将调用两种方法,如果到达标记,则调用onMarkerReached
,或者每设置一组帧就调用onPeriodicNotification
。您可以选择使用其中一个,也可以使用两个。这两个回调都引用了用于设置它的AudioTrack
实例。
默认情况下,它将在创建AudioTrack
实例的同一线程中进行回调。另外,您可以在注册回调以将其发送到另一个线程时传递一个处理程序。
关于java - 来自AudioTrack流的通知消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4642140/