Я не думаю, что это хорошо, но это работает.
Я хочу знать, верно ли то, что я делаю?
У меня есть 2 файла tick.wav и tock.wav, которые должны воспроизводиться по таймеру или току. setLooping не очень хорош, потому что мне нужно играть по таймеру init.
Итак, я пробую два метода:
First
У меня есть переменная 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 soruce, как я могу это сделать?