上一首仍在播放时如何加载下一首?我创建了一个在线播放器,它从 VK 加载歌曲,但在加载下一首歌曲时它最终会产生非常大的停顿,那么当它还在播放时是否可以加载下一首歌曲?有什么方法可以更快地执行加载吗?
还有一个,当手机没有锁定时,它加载音乐的速度更快,为什么?!
要播放下一首歌曲,您需要setOnCompletionListener
为您的MediaPlayer
myMediaPlayer.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer player) {
player.stop();
player.reset();
player.setDataSource(/* go to your next target*/);
player.prepare();
player.start();
}
});
但是如果你想准备下一首歌曲并且之前还没有完成,我认为你需要两个MediaPLayer
实例。
据我所知,Android 有大约 32 个音频流通道,所以不用担心,只要确保在完成每个媒体播放器时停止
您可以使用此方法将下一个 dataSource 读入字节数组:
然后,当您准备好阅读歌曲时,请使用 localhost 套接字。
new Thread(new Runnable() {
public void run()
{
ServerSocket serverSocket = new ServerSocket(1111); //some port
Socket s = serverSocket.accept();
OutputStream out = s.getOutputStream();
out.write(myByteArray); //either this is static somewhere, or you find a way to get the byte array into the instance
out.close()
}
}).start();
mp.setDataSource("127.0.0.1:1111");
您仍然需要准备歌曲,但数据传输将比读取 Internet URL 快得多。所以我们在播放前一首歌的时候做那部分。
另外,请注意,我在这里没有处理任何异常,您必须这样做。