Android: MediaPlayer, как получить свойства аудиопотока? - PullRequest
6 голосов
/ 30 января 2011

Я могу успешно прослушивать аудиопоток с помощью интерфейса MediaPlayer, но как я могу получить свойства потока, такие как текущая скорость передачи данных или текст потока (многие потоки, такие как онлайн-радио, включают в себя воспроизводимую в данный момент дорожку)?

Я пытался найти эту информацию, но не смог, если эти вещи, возможно, есть где-то на сайте разработчика Android, где перечислены различные доступные «свойства»?

Ответы [ 3 ]

3 голосов
/ 30 января 2011

Во-первых, сайт Android DEV - это сайт со всей информацией о классе, но иногда трудно найти то, что вам нужно.В этом случае проверка исходного кода java может оказаться весьма полезной.

Из быстрого просмотра SDK есть интерфейс onInfoListener, который можно реализовать в классе, расширяющем MediaPlayer.Это требует, чтобы вы реализовали public boolean onInfo(MediaPlayer mp, int what, int extra).http://developer.android.com/reference/android/media/MediaPlayer.OnInfoListener.html утверждает, что есть что = MEDIA_INFO_METADATA_UPDATE.

Но - проверка Google на это дала бы идею, что это никогда не будет вызвано: - / Так что в конечном итоге вы сами по себе с этим ...

0 голосов
/ 07 февраля 2011

Если ваш поток является потоком shoutcast / icecast, вы можете использовать служебный класс по номеру http://code.google.com/p/streamscraper/ для извлечения метаданных, включая название песни. Кроме того, вы можете создать свой собственный экстрактор метаданных. Посмотрите на http://www.smackfu.com/stuff/programming/shoutcast.html для получения дополнительной информации.

0 голосов
/ 30 января 2011

Я мог бы сделать это сложнее, чем нужно, но вы можете декодировать кадр Stream с помощью Jlayer или какой-либо другой библиотеки декодирования MP3, чтобы получить информацию, которую вы ищете.Не уверен, если есть способ сделать это только с Android SDK.

...