gpt4 book ai didi

java - Android 媒体播放器无法播放音频文件

转载 作者:行者123 更新时间:2023-12-01 04:43:39 24 4
gpt4 key购买 nike

我制作音乐应用程序只是为了好玩。我可以从 SD 卡读取所有音乐文件,但 MediaPlayer 无法播放声音。我有文件的路径,我用 setDataSource 传递给媒体播放器,但没有任何反应,也没有异常(exception)。这是我使用的代码。

Uri songUri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_player);
setUpViews();
MediaPlayer mp = new MediaPlayer();

try {
mp.setDataSource(songUri.toString());
mp.prepare();

} catch (IllegalArgumentException e) {
Toast.makeText(this, "ILLEGAL ARGUMENT EXCEPTION", Toast.LENGTH_LONG).show();
e.printStackTrace();
} catch (SecurityException e) {
Toast.makeText(this, "SECURITY EXCEPTION", Toast.LENGTH_LONG).show();
e.printStackTrace();
} catch (IllegalStateException e) {
Toast.makeText(this, "ILLEGAL STATE EXCEPTION", Toast.LENGTH_LONG).show();
e.printStackTrace();
} catch (IOException e) {
Toast.makeText(this, "IO EXCEPTION", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
mp.start();
Log.d("URI AFTER SET UP", songUri.toString());
}

正如我之前所说,当我打开此 Activity 时没有任何反应,但我仍然在控制台中获取所有 Log.d。媒体播放器播放音乐还有更多配置吗?提前致谢。

最佳答案

setDataSource() 需要路径参数。您将整个 uri 作为字符串传递。试试这个:

mp.setDataSource(songUri.getPath());
mp.prepare();
mp.start();

此外,如果您尝试访问带有 content:// uri 的文件,它将无法工作。您必须找到文件的真实路径,即 file:// uri。

关于java - Android 媒体播放器无法播放音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16149929/

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