2017-07-31 4 views
-1

このコードはうまく動作し、期待どおりにビデオ再生を開始しますが、CordovaアプリケーションでVLCをバッキングすると、正しいrequestCode(42)が返されますが、resultCodeは常に0です(RESULT_CANCELLED )、返されたIntentはnullです。ビデオが再生を終了し、VLCが単独で終了する場合も同じことが起こります。 documentationによると、extra_position(終了時にビデオの位置を取得する)などの情報を含むReturn IntentでRESULT_OKを取得する必要があります。VLCインテントは常に結果コードを返します0 - RESULT_CANCELED

他のインテントは、連絡先の選択のように正常に動作します。

Android TVエミュレータ、Nvidia Shield Tablet、Android搭載端末(注4)でテスト済みです。試したVLC 2.0.6、最新のベータ版と夜間のビルド。

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()); 
}  
+0

あなたはどんな結果を期待していますか?結果と何をする予定ですか? –

+0

私たちは-1 RESULT_OK resultCodeと、プレイヤーのビデオのどこにあるかを判断するためにextra_position値を取得できる有効なIntentオブジェクトを期待していました –

答えて

1

これは、あなたが探している結果を与える必要があります

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

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

を交換してください。

+0

ありがとうございました。 –

関連する問題