【发布时间】:2017-07-31 23:40:35
【问题描述】:
此代码工作正常并按预期开始视频播放,但在我们的 Cordova 应用程序中退出 VLC 时,返回正确的 requestCode (42),但 resultCode 始终为 0 (RESULT_CANCELLED) 并且返回的 Intent 为空。如果视频完成播放并且 VLC 自行退出,也会发生同样的事情。根据documentation,我们应该得到RESULT_OK,返回Intent包含extra_position等信息(在退出时获取视频位置)。
其他 Intent 工作正常,例如选择联系人 Intent。
在 Android TV 模拟器、Nvidia Shield 平板电脑和 Android 手机上进行了测试(注 4)。尝试过 VLC 2.0.6、最新的 Beta 版和夜间版本。
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 RESULT_OK resultCode 和一个有效的 Intent 对象,我们可以从中获取 extra_position 值以确定播放器在视频中的位置
标签: javascript android cordova android-intent vlc