Java.Lang.RuntimeException: setDataSource failed: status = 0x80000000 in xamarin.forms with only android 8

问题描述

stackoverflow 本身针对这个错误提出了很多问题,但没有一个能真正解决问题。 setDataSource 失败:MediaMetadataRetriever 的状态 = 0x80000000。 Android 7、9、10 运行良好。我只有 android 8 有问题。在三星 j5 prime 中测试。使用 xamarin.forms 4.8.0.1821.all 权限。

MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.SetDataSource(filePath);
string time = retriever.ExtractMetadata(MetadataKey.Duration);
long ms = java.lang.Long.ParseLong(time);
                

{java.lang.RuntimeException: setDataSource Failed: status = 0x80000000
  at Java.Interop.jnienvironment+InstanceMethods.CallVoidMethod (Java.Interop.JniObjectReference instance,Java.Interop.JniMethodInfo method,Java.Interop.JniArgumentValue* args) [0x0006e] in <42748fcc36b74733af2d9940a8f3cc8e>:0 
  at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeVirtualVoidMethod (System.String encodedMember,Java.Interop.IJavaPeerable self,Java.Interop.JniArgumentValue* parameters) [0x0002a] in <42748fcc36b74733af2d9940a8f3cc8e>:0 
  at Android.Media.MediaMetadataRetriever.SetDataSource (System.String path) [0x00029] in <7d2292394f8c488b97f5bc2a0ac0240d>:0 
  --- End of managed java.lang.RuntimeException stack trace ---
java.lang.RuntimeException: setDataSource Failed: status = 0x80000000
    at android.media.MediaMetadataRetriever.setDataSource(Native Method)
    at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:78)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)