一些背景
我制作的应用是间隔应用。这允许用户为两个间隔中的每一个选择时间量。运行时,应用程序会使用两个用户选择的时间设置运行倒数计时器。我有两首歌我想为每个音程播放,但我不能设置歌曲改变的具体时间,因为用户改变了。因此,如果用户仅在第一个间隔选择4秒,我只需要播放该时间的歌曲,并且当倒计时与另一个间隔重新开始时,我需要播放另一首歌曲。
现在回答我真正的问题。
如何调用音频播放?我看了很多问题,但是他们都说我需要将音响播放器放在一个新的活动中?如果我把它放在一个新的活动中,它会不会停止倒数计时器?我如何才能让倒数计时器继续运行?
答案 0 :(得分:1)
你有两种方法在Android中播放声音,一种是SoundBoard(专为短片而设计,如果你想播放一首歌则不使用它),另一种是MediaPlayer。您可以通过将文件放在raw文件夹中然后执行以下操作来播放音频:
MediaPlayer mp = MediaPlayer.create(ClassName.this, R.raw.sound);
mp.start();
然后当计时器结束时,你可以用mp.stop();
停止播放歌曲,你可以通过以下方式播放以下音频文件:
mp.reset();
mp = MediaPlayer.create(ClassName.this, R.raw.sound2);
完成后,请记得使用mp.release();
发布Mediaplayer。
我希望我明白你需要做什么,你也应该把媒体播放器放在一个新的线程中,从官方的android开发者文档中看到这个:
为了避免挂起你的UI线程,产生另一个线程来准备 MediaPlayer完成后通知主线程。但是,当你 可以自己编写线程逻辑,这种模式很常见 当使用MediaPlayer时,框架提供了一种方便的方法 使用prepareAsync()方法完成此任务。这种方法 开始在后台准备媒体并立即返回。 当媒体完成准备时,onPrepared()方法 MediaPlayer.OnPreparedListener,通过配置 调用setOnPreparedListener()。