我不认为什么是好的,但它有效。
我想知道我的工作是什么?
我有两个文件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媒体播放器的短时间反应,我该怎么办?
答案 0 :(得分:0)
可能你不需要Vector来存储媒体文件,我认为你可以使用java反射来获取有关“原始”资源的信息,因为raw是来自R.java的静态类。
你在停止媒体播放器吗? tickPlayer.stop()。