2012-12-03 28 views
0

一些背景如何在应用程序中编码音频?

我制作的应用程序是一个间隔应用程序。这允许用户为两个间隔中的每一个选择时间量。运行时,该应用程序会使用两个用户选择的时间设置运行倒数计时器。我有两首我想要在每个间隔中播放的歌曲,但是当歌曲发生变化时,我无法设置特定的时间,因为用户会改变它。因此,如果用户仅在第一个时间间隔选择4秒钟,我只需要该歌曲播放该时间,而当倒数开始时与另一个时间间隔一起播放,我需要另一首歌曲播放。

现在我真正的问题。

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

回答

1

您有两种方法可以在android中播放声音,一种是SoundBoard(专为短片设计,如果您想播放歌曲则不要使用此功能),另一种是MediaPlayer。您可以通过将在原始文件夹中的文件,然后做播放音频如下:

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()方法完成此任务提供了一种便捷方式。此方法 开始在后台准备媒体并立即返回。 媒体完成准备后,将调用 MediaPlayer.OnPreparedListener的onPrepared()方法,该方法通过 setOnPreparedListener()进行配置。

+0

好的,这是有道理的。有什么方法可以让用户从他们自己的手机歌曲库中选择他/她想要播放哪首歌曲? –

+1

是的,这是可能的。您只需要获取文件的路径,请参阅此示例以播放外部文件:http://android-er.blogspot.it/2010/07/play-mp3-in-sd-card-using-androids。 html,请检查文件资源管理器[this](http://android-er.blogspot.it/2010/01/implement-simple-file-explorer-in.html)。 –

相关问题