android - 使用媒体播放器播放音乐时出现 LogCatError "setDataSource: outside path in JNI is ?x@"

标签 android

我在用媒体播放器播放音乐文件时遇到一个奇怪的问题。

播放开始没有任何问题,一切正常。该应用程序不会崩溃。但每次我选择一首歌曲时,我都会收到以下 LogCatError:

11-18 16:26:19.800: E/MediaPlayer(11367): setDataSource JAVA path

11-18 16:26:19.800: E/MediaPlayer-JNI(11367): setDataSource: outside path in JNI is ?x@

11-18 16:26:19.855: E/MediaPlayer(11367): In prepareAsync

11-18 16:26:20.005: W/MediaPlayer(11367): info/warning (1, 44)

我不从互联网上下载文件,我只是播放存储在设备上的歌曲。

如果没有人能给我一个解决方案,如果有人能向我解释错误就好了。

最佳答案

在你的媒体播放器数据源周围使用 try catch,如下所示:

try {
                mp.setDataSource(getApplicationContext(), ringtoneUri);
            } catch (IllegalArgumentException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            } catch (SecurityException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            } catch (IllegalStateException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }

您必须捕获所有异常。 这对我有用。

关于android - 使用媒体播放器播放音乐时出现 LogCatError "setDataSource: outside path in JNI is ?x@",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8185791/

相关文章:

java - 将调用类传递给子类,并在子类完成工作时调用其中的方法

android - 在 Android 应用程序中卡住 SQLite-DB

c# - 防止在 xamarin 和 monodroid 中旋转后重新加载 Activity

php - 如何修复android studio中的登录错误

java - Sonar : How do I use gradle to inspect an android project

android - 在哪里可以找到 Android 4.1+ 通知栏中的 "clear all"图标

java - 从 SQLite 数据库生成随机输出

android: 如何在模拟器上播放 YouTube 视频

java - 如何给已经构建好的OkHttp请求对象添加header?

android - 减小 Android 源存储库 .repo 目录的大小