В моей деятельности есть таймер, который каждую секунду отправляет сообщение обработчику, который меняет изображение.Таймер прерывания MediaPlayer
Каждый раз, когда пользователь нажимает на изображение звук воспроизводится в функции onClickListner деятельности, используя этот код:
MediaPlayer.create(this, R.raw.voice).start();
На XPERIA дуги (Android 4.0.4) звук не воспроизводился полностью, и как только таймер запускает его. Если отключить таймер, проблем нет.
На HTC Legend (Android 2.2) нет проблем. Звук воспроизводится полностью.
Я не могу решить проблему.
public class ActivityTest extends Activity implements View.OnClickListener, ViewSwitcher.ViewFactory
{
ImageSwitcher switcher;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.test_listen);
switcher = (ImageSwitcher) findViewById(R.id.imageSwitcher);
switcher.setFactory(this);
switcher.setOnClickListener(this);
final Handler handler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
switcher.setImageDrawable(getResources().getDrawable(R.drawable.image));
// if this line is commented it works fine
}
};
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run()
{
handler.sendEmptyMessage(0);
}
}, 0, 1000);
}
@Override
public void onClick(View view)
{
MediaPlayer.create(this, R.raw.voice).start();
}
@Override
public View makeView()
{
ImageView image = new ImageView(this);
image.setScaleType(ImageView.ScaleType.FIT_CENTER);
image.setLayoutParams(new ImageSwitcher.LayoutParams(ImageSwitcher.LayoutParams.FILL_PARENT, ImageSwitcher.LayoutParams.FILL_PARENT));
return image;
}
}
Решение -------------------------------------
I переместил объявление MediaPlayer в класс и устранил проблему.
MediaPlayer mp;
@Override
public void onClick(View view)
{
mp =MediaPlayer.create(this, R.raw.voice);
mp.start();
}
Я не знаю, почему предыдущий код работает с 2.2, но не 4. в любом случае он сработал.
SoundPool не играет ничего. Это mp3. Поддерживает ли soundpool mp3? Он возвращает 0 при воспроизведении. – Ali
yes soundpools mp3 mp3 Я только что обновил свой ответ. – j2emanue