Как играть в эфир в прямом эфире .asx video/x-ms-asf?
Есть ли какая-либо сторонняя библиотека на Android или Java, которая может воспроизводить радиопередачу в прямом эфире?
File extension: .asx
MIME type: video/x-ms-asf
К сожалению, MediaPlayer не поддерживает этот формат!
Вот URL-адрес в прямом эфире: http://38.96.148.75/SunnahAudio
EDIT:
Мне удалось преобразовать файл .asf
в файл .mp3
, используя JAVE:
File source = new File("sound.asf");
File target = new File("target.mp3");
AudioAttributes audio = new AudioAttributes();
audio.setCodec("libmp3lame");
audio.setBitRate(new Integer(64000));
audio.setChannels(new Integer(1));
audio.setSamplingRate(new Integer(22050));
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("mp3");
attrs.setAudioAttributes(audio);
Encoder encoder = new Encoder();
encoder.encode(source, target, attrs);
Однако я транслирую .asf
онлайн, и я не уверен, могу ли я транслировать радиостанцию, преобразовать ее в .mp3
и сразу же воспроизвести ее!
EDIT2:
Я предлагаю 500+ репутации для всех, кто предлагает полное и эффективное решение для воспроизведения .asf
в прямом эфире на Android. В принципе, я хочу играть на этой радиостанции на Android (как может xiialive
):
http://38.96.148.75/SunnahAudio
Ответы
Ответ 1
Если вы открываете URL-адрес потока в проигрывателе VLC, вы можете узнать, что это поток MMS
, используя WMA
codec mmsh://38.96.148.75/SunnahAudio?MSWMExt=.asf
Вот проект с открытым исходным кодом aacplayer-android, который использует libmms
и libffmpeg
для
получить содержимое WMA из потока mms://
и воспроизвести его.
Я надеюсь, что он решает вашу проблему.
Ответ 2
Мне удалось успешно воспроизвести ваш поток на Android с помощью библиотеки Vitamio. Самое большое преимущество этой библиотеки в том, что она совместима с API с Android SDK, поэтому вам просто нужно будет изменить импорт в вашем коде.
Один из плагинов Vitamino должен присутствовать на данном устройстве для использования библиотеки. Просто откройте Vitamio Demo в Eclipse
и посмотрите, как его использовать. Запрос на установку плагина Vitamio включен в демонстрационную версию.
Я смог воспроизвести ваш поток с помощью этого кода:
import io.vov.vitamio.widget.MediaController;
import io.vov.vitamio.widget.VideoView;
import android.app.Activity;
import android.os.Bundle;
public class VideoViewDemo extends Activity {
private String path = "mmsh://38.96.148.75/SunnahAudio";
private VideoView mVideoView;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.videoview);
mVideoView = (VideoView) findViewById(R.id.surface_view);
mVideoView.setVideoPath(path);
mVideoView.setMediaController(new MediaController(this));
mVideoView.requestFocus();
}
}
Как вы можете видеть - аналогично использованию VideoView
из Android SDK. В значительной степени единственная разница заключается в импорте.
Единственное отличие, которое нужно отметить, это то, что я не смог использовать http-ссылку, поэтому мне пришлось использовать реальный потоковый URL-адрес с протоколом mmsh (открытый в VLC - аналогично тому, что сделал @vasart).
Для справки вы можете просмотреть журналы с успешным воспроизведением.