html5 аудио объект ondurationchange не вызывается на Android

0

У меня есть директива angularjs для воспроизведения аудиофайлов в ионном приложении. Я также показываю продолжительность аудиофайла и прочее в моей директиве. Поэтому, если я хочу отображать продолжительность аудиофайла через событие ondurationchange, он отлично работает на iOS, но на Android событие никогда не будет вызвано.

Мой код выглядит так:

$scope.audioObj = new Audio(url);

if(isNaN(AAudioService.getDuration())) {
  $scope.audioObj.ondurationchange = function() {
  console.log($scope.audioObj.duration.toFixed(1));
}

В чем проблема?

  • 0
    Попробуйте посмотреть здесь .
Теги:
audio
ionic

1 ответ

0
Лучший ответ

Вы можете использовать Ionic-audio для этой цели. Он использует внутренний Cordova Media Plugin.

Рабочий плункер.

app.js

//Add it as dependency
angular.module('starter', ['ionic', 'starter.controllers', 'ionic-audio'])

controllers.js

angular.module('starter.controllers', [])

.controller('MusicCtrl', function($scope) {
    $scope.track = {
        url: 'https://www.example.com/my_song.mp3',
        artist: 'Somebody',
        title: 'Song name',
        art: 'img/album_art.jpg'
    }
});

yourtemplate.html

<ion-view view-title="Music">
  <ion-content>
      <ion-audio-track track="track">
          <div class="list list-inset">
              <div class="item item-thumbnail-left">
                  <img src="{{track.art}}">
                  <h2>{{track.title}}</h2>
                  <p>{{track.artist}}</p>
                  <ion-audio-controls>
                        <a class="button button-icon icon" ion-audio-play></a>
                        <ion-spinner icon="ios"></ion-spinner>
                    </ion-audio-controls>
              </div>
              <div class="item">
                <ion-audio-progress-bar display-time></ion-audio-progress-bar>
              </div>
          </div>
      </ion-audio-track>
  </ion-content>
</ion-view>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню