如何播放电台直播.asx video / x-ms-asf?

时间:2012-07-20 17:41:04

标签: java android media-player asf asx

Android或Java中是否有可以播放电台直播的第三方库?

File extension: .asx
MIME type: video/x-ms-asf

不幸的是,MediaPlayer不支持这种格式!

以下是直播的网址:http:// 38.96.148.75 / SunnahAudio


修改

我可以使用JAVE.asf文件转换为.mp3文件:

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多个代表提供了一个完整且有效的解决方案,可以在Android上播放.asf直播。基本上,我想在Android上播放这个广播电台(xiialive可以这样做):

http://38.96.148.75/SunnahAudio

2 个答案:

答案 0 :(得分:6)

如果您在VLC播放器中打开流的网址,则可以使用MMS编解码器WMA找出它是mmsh://38.96.148.75/SunnahAudio?MSWMExt=.asf流 这是一个使用libmmslibffmpeg的开源项目aacplayer-androidmms://流中获取WMA内容并播放。
我希望它能解决你的问题。

答案 1 :(得分:5)

我能够使用Vitamio库在Android上成功播放您的视频流。这个lib的最大优点是它与Android SDK兼容,因此您只需更改代码中的导入。

Vitamino plugins中的一个应该出现在给定设备上以使用该库。只需在Eclipse中打开Vitamio Demo,然后查看如何使用它。提示用户安装 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();
    }

}

正如您所看到的 - 类似于使用Android SDK中的VideoView。几乎唯一的区别是进口。

唯一不同的是我无法使用 http 链接,所以我不得不使用带有 mmsh 协议的真实流媒体网址(在中打开) > VLC - 类似于@vasart所做的事。)

供参考,您可以查看logs from successful playback