如何在应用程序中编码音频?

时间:2012-12-03 14:46:26

标签: android audio

一些背景

我制作的应用是间隔应用。这允许用户为两个间隔中的每一个选择时间量。运行时,应用程序会使用两个用户选择的时间设置运行倒数计时器。我有两首歌我想为每个音程播放,但我不能设置歌曲改变的具体时间,因为用户改变了。因此,如果用户仅在第一个间隔选择4秒,我只需要播放该时间的歌曲,并且当倒计时与另一个间隔重新开始时,我需要播放另一首歌曲。

现在回答我真正的问题。

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

1 个答案:

答案 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()。