このコードはうまく動作し、期待どおりにビデオ再生を開始しますが、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());
}
あなたはどんな結果を期待していますか?結果と何をする予定ですか? –
私たちは-1 RESULT_OK resultCodeと、プレイヤーのビデオのどこにあるかを判断するためにextra_position値を取得できる有効なIntentオブジェクトを期待していました –