当前位置 : 主页 > 手机开发 > android >

Android AudioTrack()如何在启动后停止播放流

来源:互联网 收集:自由互联 发布时间:2021-06-11
我的目标API是2.2 我动态创建音频片段,因此使用soundpool或mediaplayer是不可能的. 我发现没有/未充分记录的一个项目是AudioTrack()将创建实例的设置限制.我发现它在6到12个实例之间.文档中未
我的目标API是2.2
我动态创建音频片段,因此使用soundpool或mediaplayer是不可能的.
我发现没有/未充分记录的一个项目是AudioTrack()将创建实例的设置限制.我发现它在6到12个实例之间.文档中未涉及的一件事是每次启动AudioTrack()时它都会创建一个新实例.会话ID直到版本2.3才会实现,因此GetSessionID()在2.2下不可用.我看到的许多问题都是每次你做的
AudioTrack audioTrack =(新)AudioTrack(这里的各种参数);它开始了一个新的过程
所以只做audioTrack.stop();如果您尝试停止上一个流,则不起作用.

所以我的问题是我开始播放可能超过一分钟的audioTrack.这是在流外过程中完成的(通过参数传递单独的例程)流正常.该程序正在执行一些其他用户指导的任务,我想在完成其’回放缓冲区之前停止录音轨.

我需要一种引用正在播放和停止的音轨的方法.
我的新手和太长的C程序员以及缺乏Java经验正在阻碍我.当然必须有办法随时停止录音带.
寻找一种方法来引用audiotrack并阻止它.
我想也许是android.media.audiotrack.stop();可能是接近但接近不要削减它.救命!我花了15个小时寻找一个例子.
TNX

调用这3种方法对我有用.我也有代码来停止另一个线程中的缓冲.

audioTrack.flush();
audioTrack.stop();
audioTrack.release();
网友评论