1

我正在尝试制作一个在 android 上播放实时 http 流的应用程序(我已经在iphone中做了同样的事情)。Android官方教程展示了一个关于如何进行http直播的示例代码,我遵循了:

public class liveStream extends Activity implements OnClickListener {
    Button streamButton;
    MediaPlayer mediaPlayer = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_live_stream);

        streamButton = (Button) findViewById(R.id.streamButton);
        streamButton.setOnClickListener(this);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_live_stream, menu);
        return true;
    }

    public void onClick(View v) {       
        String url = "http://d2233avv69kunu.cloudfront.net/hds-live/livepkgr/_definst_/liveevent/livestream.f4m"; 
        mediaPlayer = new MediaPlayer();
        mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

        try {
            mediaPlayer.setDataSource(url);
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {
            mediaPlayer.prepare();
        } catch (IOException e) {
            e.printStackTrace();
        }
        mediaPlayer.start();
    }
}

问题是当我尝试准备播放器时,我不断收到 IOException。如果是这样,我如何在没有第三方 Flash 播放器的情况下直接播放实时 http 流?类似于iphone

4

2 回答 2

2

Android 不支持 Flash 清单文件 (.f4m) 实时流式传输。

Android 支持的流媒体格式

于 2012-08-07T10:48:08.520 回答
0

大多数从 2.3 开始的 android 设备都以某种形式原生支持 Apple 的 HLS。在某些设备上,您需要使用 httplive://.../playlist.m3u8 而不是 http://,但据我所知,大多数设备都支持仅使用 http 的 m3u8 URL,尤其是当您通过 Android 3.0

于 2012-11-08T14:22:52.517 回答