Приложение Cordova не открывается azure медиаплеер видео - PullRequest
0 голосов
/ 20 марта 2020

У меня есть приложение, сделанное в VueJS с платформой Quasar, в котором есть тег, который открывает видео Azure Media Player. Он отлично работает в браузере, но при компиляции с cordova для android он не воспроизводит видео в apk, по-видимому, он не загружает JavaScript:

<link href="//amp.azure.net/libs/amp/2.3.0/skins/amp-default/azuremediaplayer.min.css" rel="stylesheet">
    <script src="//amp.azure.net/libs/amp/2.3.0/azuremediaplayer.min.js" onload="alert('Cargo el amp')"></script> 

Это метод Я использую для загрузки видео:

loadVideo () {
      alert('Entro al load video')
      alert('Variable window  ' + JSON.stringify(window.amp))
      const myPlayer = window.amp(this.idVideo, { /* Options */
        techOrder: ['azureHtml5JS', 'flashSS', 'html5FairPlayHLS', 'silverlightSS', 'html5'],
        'nativeControlsForTouch': false,
        autoplay: true,
        controls: true,
        // width: '328',
        // height: '202',
        poster: '',
        fluid: true
      }, function () {
        console.log('Good to go!')
        // add an event listener
        alert("Good to go!'")
        this.addEventListener('ended', function () {
          console.log('Finished!')
          alert('Finished')
        })
        this.addEventListener('error', function () {
          var errorDetails = myPlayer.error()
          var code = errorDetails.code
          var message = errorDetails.message
          alert('Hay error ' + code + message)
        })
      }
      )
      myPlayer.src([{
        src: this.srcVideoDialog,
        type: 'application/vnd.ms-sstr+xml'
      }])
    }        

Как вы можете видеть, я помещаю оповещения, чтобы знать, в какой момент оно входит, но не загружает функцию window.amp. Я надеюсь, что кто-то нашел решение этой проблемы. !!!

привет

Ответы [ 2 ]

0 голосов
/ 20 марта 2020

В продолжение моей проблемы. Я создал файл js и css с содержимым медиаплеера azure и изменил ссылку в моем индексе:

<link href="statics/amp.css" rel="stylesheet">
<script src="statics/amp.js"></script>

Таким образом, я загружаю javascript без проблем, поэтому Кажется, что проблема была в доступе к источнику происхождения: //amp.azure.net/libs/amp/2.3.0/azuremediaplayer.min.js

Я должен проанализировать, как там похоже, проблема с плагином Cordova Whitelist

0 голосов
/ 20 марта 2020

Мне кажется, что эта проблема вызвана тем, что window.amp доступен в браузере, но недоступен в Android.

Из документации TypeScript

Иногда вы попадаете в ситуацию, когда вы знаете больше о значении, чем TypeScript. Обычно это происходит, когда вы знаете, что тип некоторой сущности может быть более конкретным c, чем ее текущий тип.

Утверждения типа - это способ сказать компилятору: «Поверьте мне, я знаю, что делаю». «. Утверждение типа похоже на приведение типов в других языках, но не выполняет никакой специальной проверки или реструктуризации данных. Он не влияет на время выполнения и используется исключительно компилятором. TypeScript предполагает, что вы, программист, выполнили все необходимые специальные проверки.

Перепишите window.amp как (<any>window).amp

...