Аудиопоток Cordova html5 останавливается через несколько минут

#javascript #vue.js #cordova #html5-audio

#javascript #vue.js #кордова #html5-аудио

Вопрос:

Я создал приложение Vue, Cordova, и мы хотим внедрить в приложение радиопоток. Когда пользователь нажимает кнопку воспроизведения, приложение запускает прямую трансляцию по URL-адресу. Проблема в том, что когда пользователь переводит приложение в фоновый режим или когда телефон переходит в спящий режим, потоки прекращаются примерно через 15 минут. Я думаю, что IOS и Android откладывают приложение (отключают его от сети).

После некоторого поиска я нашел библиотеку cordova, которая должна предотвратить это, но библиотека не работает.

  • vue@2.6.11
  • cordova@10.0.0

Установленные платформы:

  • android 8.0.0
  • ios 5.1.1

Мой config.xml:

 <plugin name="cordova-plugin-inappbrowser" spec="3.2.0" />
<plugin name="cordova-plugin-whitelist" spec="1.3.4" />
<plugin name="cordova-plugin-wkwebview-engine" spec="1.2.1" />
<plugin name="cordova-plugin-x-socialsharing" spec="5.6.5" />
<plugin name="cordova-plugin-background-mode" spec="0.7.3" />
<plugin name="cordova-plugin-background-mode-fixed" spec="0.7.8" />
  

мой index.html:

 document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    window.open = cordova.InAppBrowser.open;
    cordova.plugins.backgroundMode.enable();
}
  

Мое приложение.vue:

 <audio id="yourAudio" preload='none'>
    <source src='https://media1.hostin.cc/punt24.mp3' type='audio/wav' />
</audio>
<v-btn v-bind:class="{'d-none': this.$root.playStream}" icon x-large @click="playStream" v-bind:updaterplay="updaterPlay">
    <v-icon>$vuetify.icons.playbutton</v-icon>
</v-btn>
<v-btn v-bind:class="{'d-none': !this.$root.playStream}" icon x-large @click="playStream" v-bind:updaterplay="updaterPlay">
    <v-icon>$vuetify.icons.stopbutton</v-icon>
</v-btn>
  
 playStream(){
    var method = 'pause';
    var yourAudio = document.getElementById('yourAudio');
    if(this.$root.playStream){
        this.$root.playStream = false;
        method = 'pause';
    }else{
        this.$root.playStream = true;
        method = 'play';
    }
    yourAudio[method]();
    this.updaterPlay  ;
},
  

У кого-нибудь есть идеи?