此代码工作正常并按预期启动视频播放,但在我们的Cordova应用程序中退出VLC时,返回正确的requestCode(42),但resultCode始终为0(RESULT_CANCELLED)并且返回的Intent为null . 如果视频完成播放并且VLC自行退出,则会发生同样的情况 . 根据documentation,我们应该得到RESULT_OK,并返回包含extra_position等信息的Intent(以便在退出时获取视频位置) .
其他Intent工作正常,例如选择联系意图 .
在Android TV模拟器,Nvidia Shield Tablet和Android手机上进行了测试(注4) . 尝试过VLC 2.0.6,最新的Betas和夜间版本 .
public void start(String uri, long position) {
int vlcRequestCode = 42;
Uri parsedUri = Uri.parse(uri);
Intent vlcIntent = new Intent(Intent.ACTION_VIEW);
vlcIntent.setPackage("org.videolan.vlc");
vlcIntent.setDataAndTypeAndNormalize(parsedUri, "video/*");
vlcIntent.putExtra("position", position);
this.cordova.startActivityForResult(this, vlcIntent, vlcRequestCode);
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
JSONObject json = new JSONObject();
json.put("requestCode", requestCode);
json.put("resultCode", resultCode);
json.put("intentIsNull", intent == null);
this.callbackContext.success(json.toString());
}
1 回答
更换
vlcIntent.setPackage("org.videolan.vlc");
同
vlcIntent.setComponent(new ComponentName("org.videolan.vlc", "org.videolan.vlc.gui.video.VideoPlayerActivity"));
这应该给出你想要的结果 .