Воспроизведение mp3 в Listview в Android - PullRequest
0 голосов
/ 13 февраля 2012

извините за мой плохой английский .. возможно, вы увидите некоторые грамматические ошибки ..

Я учусь программировать приложение для Android и мне нужна помощь.Я хотел бы поместить некоторые mp3-файлы в папку ' res / raw ', и я хотел бы поместить определенный текст для каждого элемента в ListView.Поэтому, когда пользователь нажимает на элемент, который он хочет (например, название песни), начинается связанная с ним mp3.

Я хотел бы, чтобы вы научили меня, как проигрывать только один mp3 за раз (потому что пользователь могнажимает на многие элементы во время первой игры mp3).Я новичок в мире Android, поэтому, пожалуйста, будьте терпеливы и используйте простые термины:)

Хорошего дня, Риккардо.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2012

Поскольку в ваш вопрос не входит ваш конкретный код, я могу дать вам несколько рекомендаций.

  1. Объявите ссылку на член класса для экземпляра MediaPlayer. например он должен быть объявлен в области видимости класса, а не в каком-либо методе внутри него:

    public class MyListView extends ListView {
        private MediaPlayer mp = null;
        //your methods here
    }
    
  2. В вашем OnClickListener проверьте, является ли экземпляр нулевым, и если нет, остановите и отпустите его, и создайте новый экземпляр с новой песней.

    public void onClick(View v) {
        if (mp != null) {
            mp.stop();
            mp.release();
            mp = MediaPlayer.Create(....);
            mp.start();
        }
    }
    
  3. Если вместо создания вы решили использовать prepareAsync(), убедитесь, что вы не вызываете start сразу после подготовки, а вместо этого назначаете OnPreparedListener и вызываете start в нем.

Кроме этого, следуйте указаниям в справочнике MediaPlayer .

0 голосов
/ 13 февраля 2012

Отметьте ссылку .Вам нужно будет интегрировать код по этой ссылке в вашу listView.setOnItemSelectedListener() реализацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...