首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Android 隱式意圖播放 MP3 失效排查:文件格式、URI 協議與播放器兼容性

     編輯:程式設計疑難解答

原代碼問題

Uri myuri = Uri.parse("file:///sdcard0/hua.mp3");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(myuri, "audio/mp3");
startActivity(intent);

常見失效原因

  1. file:// 協議限制:Android 7.0+ (API 24+) 禁止跨應用共享 file:// URI,會拋 FileUriExposedException。需用 FileProvider 生成 content:// URI。
  2. 文件不存在或路徑錯誤:/sdcard0/ 可能非真實路徑,應用 Environment.getExternalStorageDirectory()。
  3. MP3 格式不兼容:嘗試播放其他 MP3 文件排除編碼問題。
  4. 無默認播放器:設備未安裝支持 audio/mp3 的應用。

修正代碼 (FileProvider)

// AndroidManifest.xml

    


// res/xml/file_paths.xml


// Java
File file = new File(Environment.getExternalStorageDirectory(), "hua.mp3");
Uri uri = FileProvider.getUriForFile(this, getPackageName()+".fileprovider", file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "audio/mpeg");
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(intent);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved