0

一些背景

我制作的应用程序是一个间隔应用程序。这允许用户为两个间隔中的每一个选择时间量。运行时,应用程序会使用用户选择的两个时间设置运行倒计时计时器。我想在每个间隔播放两首歌曲,但我无法设置歌曲更改的具体时间,因为用户会更改。因此,如果用户只为第一个间隔选择 4 秒,我只需要播放这首歌,而当倒计时从另一个间隔开始时,我需要播放另一首歌曲。

现在到我真正的问题。

我如何调用音频播放?我看了很多问题,但他们都说我需要把音频播放器放在一个新的活动中?如果我把它放在一个新的活动中,它不会停止倒数计时器吗?我怎样才能使倒数计时器继续运行?

4

1 回答 1

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();.

我希望我了解您需要做什么,您还应该将媒体播放器放在一个新线程中,请参阅官方 android 开发人员文档:

为避免挂起您的 UI 线程,请生成另一个线程来准备 MediaPlayer 并在完成后通知主线程。但是,虽然您可以自己编写线程逻辑,但这种模式在使用 MediaPlayer 时非常常见,以至于框架提供了一种通过使用 prepareAsync() 方法来完成此任务的便捷方法。此方法开始在后台准备媒体并立即返回。媒体准备完成后,调用通过 setOnPreparedListener() 配置的 MediaPlayer.OnPreparedListener 的 onPrepared() 方法。

于 2012-12-03T15:03:19.720 回答