Проблемы с воспроизведением звуковых файлов при разработке приложений для Android

#android

#Android

Вопрос:

Я новичок в разработке Android, и у меня возникла проблема с тем, чтобы мой код реализовал и фактически воспроизвел звуковой файл. Я подозреваю, что это может быть связано с проблемой в моем коде, однако я много раз просматривал его и понятия не имею, что может быть причиной проблемы. Спасибо, Энн

 package com.mediaplayer;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.R.raw;
public class PlayPlayer extends Activity implements OnTouchListener {

    private MediaPlayer mp;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        final Button button1 = (Button) this.findViewById(android.R.id.button1);
        button1.setOnTouchListener(this);
            mp = MediaPlayer.create(this, R.raw.music);
            mp.start();

    }

    @Override
    public boolean onTouch(View v, MotionEvent event) {

        switch (event.getAction()) {

        case MotionEvent.ACTION_DOWN:
            mp.setLooping(true);
            mp.start();

        case MotionEvent.ACTION_UP:
            mp.pause();
        }

        return true;
    }

}
  

Ответ №1:

Хотя я никогда не использовал аудио в Android и предполагаю, что ресурс правильный (R.raw.music), у вас проблема с переключением (без перерывов), это должно выглядеть следующим образом:

 switch (event.getAction()) {

    case MotionEvent.ACTION_DOWN:
        mp.setLooping(true);
        mp.start();
        break;

    case MotionEvent.ACTION_UP:
        mp.pause();
        break;
    }
  

Комментарии:

1. Спасибо за вашу помощь, но я попробовал это, и он по-прежнему не воспроизводит звуковой файл. Интересно, может ли это быть связано с тем, что я использую функцию сенсорного экрана вместо функции щелчка, хотя на моем avd установлен пакет эмулятора сенсорного экрана.

2. Можете ли вы использовать debug, чтобы посмотреть, вызывается ли метод onTouch