首页 文章

VLC intent始终返回结果代码0 - RESULT_CANCELED

提问于
浏览
-1

此代码工作正常并按预期启动视频播放,但在我们的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 回答

  • 1

    更换

    vlcIntent.setPackage("org.videolan.vlc");

    vlcIntent.setComponent(new ComponentName("org.videolan.vlc", "org.videolan.vlc.gui.video.VideoPlayerActivity"));

    这应该给出你想要的结果 .

相关问题