Как выполнить intent.setdataandtype приложением, назначенным в packagemanager.getlaunchintentforpackage? - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть процедура JavascriptInterface, которая будет mp4 воспроизводить URL-адрес видео в Android Video Player ... Я хочу воспроизвести его с определенным приложением ... в этом случае используется MX Player.

Хорошо, вы будетескажем, просто позвольте пользователю выбрать, НЕТ

Проблема в том, что мне нужно само приложение (веб-просмотр), которое будет воспроизводить вызов MX Player с помощью кнопки JS.

Я узнал, что вы можете вызывать приложенияиспользование PackageManager.getLaunchIntentForPackage ()

А вот как я это называю

PackageManager pm = context.getPackageManager();
            Intent app = new Intent(pm.getLaunchIntentForPackage("com.mxtech.videoplayer.ad"));

Вот чистая процедура JavascriptInterface, которая будет воспроизводить видео с помощью видеоплеера по умолчанию (если есть только один видеоплеер)или позволяя вам выбрать, какой видеоплеер будет воспроизводить его

 @JavascriptInterface
    public boolean play(String vidio){
        if(vidio.contains("mp4")){
            Intent intent = new Intent(Intent.ACTION_VIEW);;
            //Eksekusi link sebagai video
            intent.setDataAndType(Uri.parse(vidio), "video/mp4");
            context.startActivity(intent);
            Log.d("OWO",vidio);
            return true;
        }else{
            Log.d("OWO",vidio);
            return false;
        }
    }

А вот сценарий Javascript, который будет вызывать процедуру JavascriptInterface и пример ссылки на видео

window.onload = function(){
  var arg = JSON.parse('{"video":"https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4"}');
  var play = document.getElementById('play');

  // associate functions with the 'onclick' events
  play.onclick = playVideo;


  function playVideo(e) {
    e.preventDefault();
    Android.play(arg.video);
  }

} 

Когда я ожидал,Я касаюсь кнопки, она автоматически воспроизводит видео внутри MX-плеера.

Но когда я пытаюсь проанализировать его с помощью setDataAndType, как показано ниже

@JavascriptInterface
    public boolean play(String vidio){
        if(vidio.contains("mp4")){
            PackageManager pm = context.getPackageManager();
            Intent intent = new Intent(pm.getLaunchIntentForPackage("com.mxtech.videoplayer.ad"));
            //Eksekusi link sebagai video
            intent.setDataAndType(Uri.parse(vidio), "video/mp4");
            context.startActivity(intent);
            Log.d("OWO",vidio);
            return true;
        }else{
            Log.d("OWO",vidio);
            return false;
        }
    }

, когда я нажимаю кнопку, он только открывает приложение MX Player, но не воспроизводит URL видео.

Так как мне это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...