在Android上流式广播

时间:2016-01-15 11:47:38

标签: android android-mediaplayer audio-streaming

我正在使用Android MediaPlayer开发网络电台。当歌曲结束并开始新歌时,我需要更新UI。怎么找,那首歌结束了? 这是我目前的代码。 mMediaPlayer.start();用户点击按钮时调用。

    mMediaPlayer = new MediaPlayer();
    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    try {
        mMediaPlayer.setDataSource(streamURL);
        mMediaPlayer.prepareAsync();
    } catch (IOException e) {
        e.printStackTrace();
    }

1 个答案:

答案 0 :(得分:3)

无线电流是无穷无尽的,所以流媒体永远不会结束,但是如果你能做的就是跟踪当前播放歌曲的无线电流中的元数据,如果你发现某些事情发生了变化,那就做点什么吧。 我想指出的更重要的一点是,MediaPlayer对于无线电流媒体来说非常慢,我自己开发了radio streaming app所以我强烈建议您使用此library来解决这个问题,原因有两个,一个比MediaPlayer更快,缓冲区更大(MediaPlayer类在某些时候有一个硬编码的byte[] buffer = new byte[4096];缓冲区,它会给你带来一些问题),第二个因为这个库让你以更加舒适的方式处理元数据。