Как использовать задачу Async для потоковой передачи звука в Android - PullRequest
3 голосов
/ 06 декабря 2011

Можем ли мы передавать аудиофайл с помощью асинхронной задачи в Android.дай мне пример, если ты сделал.

Ответы [ 2 ]

9 голосов
/ 06 декабря 2011

Хорошо, я сам долго боролся с этим, поскольку все всегда говорили мне: «Просто используйте prepareAsync(), и это будет работать.

Однако вам все равно придется подождать, пока достаточно буферизуется, прежде чем пытаться start(), иначе вы получите ошибки и ничего не произойдет.

Прежде всего, пусть ваш класс music-streamer реализует OnPreparedListener. Это будет использоваться для проверки того, достаточно ли буферизовано перед началом игры.

Затем используйте этот фрагмент кода, чтобы начать буферизацию и установить слушатель:

mediaPlayer.setDataSource(URL here);
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(this);

Теперь вы настроили своего слушателя на проверку того, достаточно ли буферизовано или нет. Осталось сделать еще один шаг

public void onPrepared(MediaPlayer mediaplayer) {
    // We now have buffered enough to be able to play
    mediaPlayer.start();
}

Песня теперь сможет начать играть без ошибок и все такое.

Удачи!


Что касается того факта, что вы хотите воспроизводить музыку и иметь возможность остановить ее в любое время, вам нужно будет использовать Service, если вы планируете иметь возможность остановить свою музыку от всех действий. В Интернете есть несколько учебных пособий по этому вопросу.

0 голосов
/ 06 декабря 2011

Вы можете использовать объект mediaPlayer.

mediaPlayer.setDataSource("Your datasource");
mediaPlayer.prepareAsync();

Метод prepareAsyc: подготавливает проигрыватель к воспроизведению асинхронно.

Для получения дополнительной информации см .: http://developer.android.com/reference/android/media/MediaPlayer.html

Надеюсь, это поможет ...

...