我已经实现了一个PCM解码器,它可以写入一个AudioTrack
对象。来自AudioTrack流的通知消息
一切似乎都很棒,但是,当最后一个写入的块已停止播放时,我需要从AudioTrack
对象获得某种通知。
我注意到有回调方法,如setNotificationMarkerPosition,
但是,我找不到任何广泛的文档如何使用它们。
在此先感谢!
我已经实现了一个PCM解码器,它可以写入一个AudioTrack
对象。来自AudioTrack流的通知消息
一切似乎都很棒,但是,当最后一个写入的块已停止播放时,我需要从AudioTrack
对象获得某种通知。
我注意到有回调方法,如setNotificationMarkerPosition,
但是,我找不到任何广泛的文档如何使用它们。
在此先感谢!
要获得AudioTrack
回调,您可以设置标记回调或使用周期性回调。我已经看到关于标记问题的报告,因此您可能想尝试两种方法。
对于标记回调,请首先拨打setNotificationMarkerPosition
,并输入您想要拨打的任何帧号。
对于周期性回调,改为拨打setPositionNotificationPeriod
,它会调用每个x帧。您可以拨打setPlaybackPositionUpdateListener
来注册回拨。这将调用两种方法:onMarkerReached
(如果它到达标记)或onPeriodicNotification
(每设置一定数量的帧)。您可以选择使用一种或另一种,或两者兼用。这两个回调都是指你用来设置它的实例AudioTrack
。
默认情况下,它会在同一个线程中回调AudioTrack
实例的创建。或者,您可以在注册回调将其发送到另一个线程时传递处理程序。
嗨chaoz,你是怎么实现PCM解码器?我正在寻找一个PCM解码器来解码音频,任何帮助将对我非常有用。 – 2011-01-17 09:24:27