12

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,然后立即播放!


编辑2:

我为任何人提供 500 多个代表提供了.asf在 Android 上播放直播的完整且有效的解决方案。基本上,我想在 Android 上播放这个广播电台(xiialive可以这样做):

http://38.96.148.75/SunnahAudio
4

2 回答 2

6

如果您在 VLC 播放器中打开流的 url,您会发现它是MMS使用WMA编解码器的流。mmsh://38.96.148.75/SunnahAudio?MSWMExt=.asf 这是一个开源项目aacplayer-android,它使用libmmslibffmpegmms://流中获取 WMA 内容并播放它。
我希望它能解决你的问题。

于 2012-07-22T19:50:38.863 回答
5

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

给定设备上应存在一个Vitamino 插件以使用该库。只需打开Vitamio DemoEclipse查看如何使用它。提示用户安装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链接,所以我必须使用带有mmsh协议的真实流 URL(在VLC中打开- 类似于 @vasart 所做的)。

作为参考,您可以查看成功播放的日志

于 2012-07-22T21:32:34.133 回答