如何在Android媒体播放器中播放mms://链接

时间:2012-12-25 21:23:02

标签: android radio

我想在我的Android应用中播放这个收音机:http://www.voadeewaradio.com/ 在哪里说“现场音频”

我进入了该页面的源代码,我找到了播放收音机的链接,其.asx格式:

  <a href="http://www.voanews.com/wm/live/radiodeewa.asx">Live Audio</a>

我使用Cocsoft StreamDown将.asx格式转换为普通的url:端口,然后由

读取
player.setDataSource("mms://a1314.l211036239.c2110.g.lm.akamaistream.net/D/1314/2110/v0001/reflector:36239");

正如你所看到的,Cocsoft StreamDown给了我上面的链接,当我在浏览器中粘贴时,它会在媒体播放器中打开收音机。虽然在Android中这个链接不起作用。

2 个答案:

答案 0 :(得分:1)

首先,不要将URL硬编码到应用程序中,只需阅读.asx - 文件并从中解析URL,它就是一种简单的XML格式。

这样,如果流URL更改,则无需更新应用程序。


对于MMS流的播放,这是not supported by Android's MediaPlayer。您需要第三方库才能执行此操作:Java library to read a Microsoft Media Server (MMS) stream

答案 1 :(得分:1)

我对http://vitamio.org软件感到满意。

我从他们的网站下载了vitamio-Android-3.0.7z并创建了一个包含以下内容的测试项目:

import io.vov.vitamio.MediaPlayer;

...
public class MainActivity extends Activity {

  private static final String TAG = "MainActivity";

  String mms_url = "mms://streaming.radionz.co.nz/national-mbr";

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (!io.vov.vitamio.LibsChecker.checkVitamioLibs(this))
      return;

    Button button = new Button(this);
    button.setText("Hit me");
    setContentView(button);

    final MediaPlayer player = new MediaPlayer(MainActivity.this);

    button.setOnClickListener(new View.OnClickListener() {

      @Override
      public void onClick(View v) {
        Log.i(TAG, "playing a mms stream ...");
        try {
          player.setDataSource(mms_url);
          player.prepare();
          player.start();
        } catch (Exception e) {
          Log.e(TAG, e.getMessage(), e);
        }
      }
    });
  }
}

我在基于Android4.2 armeabi-v7a的模拟器上进行了测试。

他们没有编译的演示应用程序,而是用于播放视频。

以下是我创建的演示应用程序:https://www.dropbox.com/s/u2ub1jwne3qjuxd/vitamio_mms_test.tar.bz2?n=127293939