Плагин Cordova не запускает обратные вызовы onStatus на ios 11.0 и 12.0 должным образом - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть проект, построенный на ионах 4.2.1.Проект разработан для ios и использует воспроизведение аудио.Сначала я попробовал @ ionic-native / media lib для отслеживания статусов (на самом деле мне нужно только два из них - «запущен» и «остановлен»), и протестировал в браузере, все это работало хорошо, но на ios есть большая проблема.

При первом воспроизведении звука обратного вызова нет вообще.Второй - сразу после нажатия на кнопку запускаются два обратных вызова одновременно - запуск и остановка.После этого второй случай повторяется все последующие разы.Звук воспроизводится нормально все время.

Я пытался использовать сам cordova-plugin-media, без @ ionic-native / media, но проблема в плагине cordova, и ничего не изменилось.

Проверено на ios 11.x и 12.1 ionic 4.2.1 cordova-plugin-media ^ 5.0.1 @ ionic-native / media ^ 4.17.0

с чистым плагином cordova-media-plugin

this.platform.ready().then(() => {

    let file = new (<any>window).Media(path, 
      () => { 
        console.log("playAudio():Audio Success")
      },
      (err) => { 
        console.log("playAudio():Audio Error: " + err)
      },
      (status) => {
        this.addConsole('status=' + status)
        if (status === 1) {
          this.isAudioActive = true
          this.addConsole('played')
        }

        if (status === 4) {
          this.addConsole('stoped')
          this.isAudioActive = false
        }
      }
    )
    this.file = file
    this.file.play()
  })

с @ ionic-native / media

  let file: MediaObject = this.media.create(path);
  this.file = file
  this.addConsole('play')
  this.file.play()
  this.file.onStatusUpdate.subscribe(
    (status) => {
      this.addConsole('status=' + status)
      if (status === 1) {
        this.isAudioActive = true
        this.addConsole('played')
      }

      if (status === 4) {

        this.addConsole('stoped')
        this.isAudioActive = false
      }
    }
  )

Надеюсь, что после методы обратного вызова cordova-plugin-media все изменилось

Любая помощь будет оценена

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...