gpt4 book ai didi

java - 关于MediaPlayer.setDatasource(URL)的查询;

转载 作者:行者123 更新时间:2023-11-30 03:47:06 24 4
gpt4 key购买 nike

我是 android 编程的初学者,我想编写 mp3 应用程序以从 URL 调用一些 mp3 文件,所以当我在 android 开发人员中显示“媒体播放器”时,我将 URL 放在 setDataSource 它工作正常,但问题是 Activity 需要很多时间来显示它,有时应用程序会崩溃。这是我的代码的一部分:

    file_url = Mp3_Linkes[num];

//Set Source
try {
mp.setDataSource(file_url);
} catch (Exception e) {

Toast.makeText(this, "Source Error !!", Toast.LENGTH_LONG).show();
}


//Prepare
try {
mp.prepare();
}catch(Exception e)
{
Toast.makeText(this, "Prepare Error !!", Toast.LENGTH_LONG).show();
}



//Start
mp.start();

最佳答案

您的 Activity 正在阻塞,因为您正在主线程(UI 线程)上调用准备

相反,您可以使用 prepareAsynch 和 OnPreparedListener 在从远程源加载时专门启动:

代码:

try {

mp.setDataSource(file_url);

mp.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer player) {

player.start();
}
});
mp.prepareAsync();

关于java - 关于MediaPlayer.setDatasource(URL)的查询;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14817536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com