Android 上的流媒体广播

Stream radio on Android

我正在使用 android MediaPlayer 开发网络广播。我需要在歌曲结束和新歌开始时更新 UI。如何找到,那首歌结束了? 这是我当前的代码。 mMediaPlayer.start();当用户点击按钮时调用。

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

无线电流是无止境的,因此流永远不会结束,但是如果您能做的是跟踪无线电流中当前正在播放的歌曲的元数据,并且如果您检测到某些内容发生了变化,那么请采取一些措施. 我想指出的更重要的一点是 MediaPlayer 对于广播流来说太慢了,我为此开发了 radio streaming app myself so I strongly reccomend you to use this library,有两个原因,一个比 [=10 更快并且缓冲区更大=](MediaPlayer class 在某些时候有一个硬编码的 byte[] buffer = new byte[4096]; 缓冲区,这会给你带来一些问题),其次,因为这个库可以让你以更舒适的方式处理元数据。