目标: 我已经创建了一个使用Ffltter的音乐播放器.我想播放另一款应用程序的音频文件. 为此,我使用了方法通道来进行Ffltter和Android之间的通信.我从Intent获得了下面的URI.
Received URI:content://com.mi.android.globalFileexplorer.myprovider/external_files/song.mp3
Received PATH:/external_files/song.mp3
My Code个
private MediaMetadataRetriever song details;
private MetadataDetails[] songDetails;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
songDetails = new MediaMetadataRetriever();
Intent intent = getIntent();
new MethodChannel(AudioServicePlugin.getFlutterEngine(this).getDartExecutor().getBinaryMessenger(), CHANNEL).setMethodCallHandler(
(call, result) -> {
if (call.method.equals("song")) {
if(intent != null && intent.getData() !=null) {
songDetails.setDataSource(intent.getData().getPath());
result.success(songDetails);
}
else {
result.success(null);
}
}
});
}
当我获取songDetail时,我收到以下错误.
ERROR:setDataSource failed: status = 0xFFFFFFEA
我已经try 了以下代码.
FileInputStream file = new FileInputStream(intent.getData().getPath());
songDetails.setDataSource(file.getFD());
但这对我来说并不管用.
有谁能指导我怎么做吗?