HTMLAudioElement с Ioni c в android 8.1 - PullRequest
0 голосов
/ 19 июня 2020

У меня есть приложение с Ionic4, разработанное игроком, оно разработано с помощью HTMLAudioElement, но при воспроизведении на компьютере с Android 8.1 отображается следующая ошибка:

NotSupportedError: элемент имеет нет поддерживаемых источников.

Ioni c:

Ioni c CLI: 6.10.0 (C: \ Users \ informatica \ AppData \ Roaming \ npm \ node_modules@ionic \ cli) Ioni c Framework: @ ionic / angular 5.2.1 @ angular -devkit / build- angular: 0.901.8 @ angular -devkit / schematics: 9.1.8 @ angular / cli: 9.1.8 @ ionic / angular -toolkit: 2.2.0

Конденсатор:

Конденсатор CLI: 2.2.0 @ конденсатор / сердечник: 2.2.0

Cordova :

Cordova CLI: 9.0.0 (cordova-lib@9.0.1) Платформы Cordova: недоступны Плагины Cordova: нет плагинов в белом списке (всего 1 плагин)

Утилита:

cordova- res: 0.14.0 собственный запуск: 1.0.0

Система:

NodeJS: v12.17.0 (C: \ Program Files \ nodejs \ node.exe) npm: 6.14.4 ОС: Windows 10

ngOnInit(){

const play = document.getElementById('play');
const stop = document.getElementById('pause');
const loader = document.getElementById('loader');
const conect = this.network;
const dialog = this.dialogs;

const audio = new Audio();
audio.src = 'http://104.131.18.232/proxy/supernova?mp=/stream';
audio.load();

play.style.display ="block";
loader.style.display ="none";
stop.style.display= "none";

audio.addEventListener('playing',function(){
loader.style.display ="none";
play.style.display="none";
stop.style.display="block";
});

audio.addEventListener('waiting',function(){
loader.style.display ="block";
play.style.display="none";
stop.style.display="none";
});

stop.addEventListener('click', function(){
 audio.pause();
 play.style.display = "block";
 stop.style.display = "none";
 loader.style.display = "none";
 });

 play.addEventListener('click', function(){
 if(conect.type === 'none'){
  dialog.alert(
    'Radio SuperNova',
    'no estás conectado a internet', 
  );
  setTimeout(()=>{
    navigator["app"].exitApp();
  },2000)
}else{
 audio.loop = true;
 const data = audio.play();
 data.then(function(i) {
  // Automatic playback started!
  console.log("reproduce i: "+i);
  }).catch(function(error) {
  console.log("reproduce error "+ error);
  audio.play();
  // Automatic playback failed.
  // Show a UI element to let the user manually start playback.
 });
 // audio.loop = true;
 play.style.display = "none";
 stop.style.display = "block";
 loader.style.display = "none";
  }
 });
 }
...