Как вы обрабатываете «видео» переменную JavaScript, которая содержит HTML-скрипт, чтобы он не возвращал «неопределенный» ответ на веб-просмотр? - PullRequest
0 голосов
/ 07 ноября 2019

Я создал приложение для веб-просмотра, которое будет воспроизводить онлайн-видео, воспроизводимое приложением по умолчанию для видеоплеера Android. Теперь система работает, когда я нажимаю кнопку воспроизведения, она будет воспроизводить видео на моем видеопроигрывателе Android по умолчанию, проблема в том, что, когда нажата кнопка, кажется, не работает, я пытаюсь войти в нее в своем веб-просмотре, и когда янажмите кнопку Play (), она возвращает ответ Undefined

Вот журнал

Вот мой код Java, который будет выполнять Android.play () в src.js

@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;
    }
}

Затем я пытаюсь заменить содержимое переменной видео в моем src.js на URL-адрес видео, ив результате мой JavaScript работает отлично, и я могу воспроизводить видео с помощью приложения по умолчанию для Android.

Вот код после изменения содержимого видеоизображения

src.js

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

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


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

Это скриншот при успешном запуске.

Это код JavaScript перед изменением.

src. JS

window.onload = function(){
  var video = document.getElementById('my-video');
  var play = document.getElementById('play');
  var pause = document.getElementById('pause');

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


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

Я также попытался проверить, что является содержаниемпеременной видео используют console.log

<script type="text/javascript">
     var video = document.getElementById('my-video');
     console.log(video);
</script>

Оттуда я получил содержимое переменной видео, которая содержит html video tag

<video width="480" height="270" id="my-video" preload="auto" poster="http://www.jplayer.org/video/poster/Big_Buck_Bunny_Trailer_480x270.png">
<source  src="https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4"></source>
</video>

Из этого я заключаю, чтопроблема с видео-переменной, вероятно, потому что тип данных, объявленный как содержащий ее, является строкой в ​​моей java-процедуре.

Итак, мой вопрос, как вы обрабатываете эту видео-переменную, чтобы она могла бытьвыполнено как видео и не определено?

Вот index.html , чтобы любой мог воспроизвести проблему

index.html

<!DOCTYPE html>
<html>
<head>
    <title> Video</title>
    <script type="text/javascript" src="src.js"></script>
</head>
<body bgcolor="#333">
<center>
<video preload="auto" width="480" height="270" 
 poster="http://www.jplayer.org/video/poster/Big_Buck_Bunny_Trailer_480x270.png" id="my-video">
    <source src="https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4" id="vidio" />
</video>
<br>
<br>
<div>
<a class="first" href="#" id="play">Play</a>
</div> 
</center>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...