如何使用一个MediaPlayer实例更正播放RAW音频文件?

时间:2011-11-22 11:07:49

标签: android media-player audio

我不认为什么是好的,但它有效。

我想知道我的工作是什么?

我有两个文件tick.wav和tock.wav必须由计时器滴答或者tock播放。 setLooping不好,因为我需要通过计时器init播放。

所以我尝试了两种方法:

第一

我有可变的MediaPlayer mp;

当我需要打勾时,我打电话给mp=MediaPlayer.create(context,tickID),当我需要打电话时,我打电话给mp=MediaPlayer.create(contenxt,tockID)

当我打电话给mp.start();

有一段时间它运作良好,我听到了滴答声,然后我开始从媒体播放器收到错误。我认为这是因为以前的MediaPlayer实例仍在播放文件。

第二

所以我接下来做:我创建两个变量

tickPlayer=MediaPlayer.create(tickID);

tockplayer=MediaPlayer.create(tockID);

然后当我需要打勾时,我需要拨打tockPlayer.start()来拨打tickplayer.start()

我不行,但(总是存在但是)如果文件超过2,可能是100,我会怎么做? 创建像Vector<MediaPlayer> mpPlayers这样的媒体播放器阵列? 需要打电话吗?我认为这很快就会占用我的记忆。

所以目标是:我需要正确播放文件与RAW媒体播放器的短时间反应,我该怎么办?

1 个答案:

答案 0 :(得分:0)

可能你不需要Vector来存储媒体文件,我认为你可以使用java反射来获取有关“原始”资源的信息,因为raw是来自R.java的静态类。

你在停止媒体播放器吗? tickPlayer.stop()。