Cordova插件媒体无法在ios 11.0和12.0上正确触发onStatus回调

时间:2018-11-27 18:16:22

标签: ios cordova ionic-framework

我有一个基于离子4.2.1的项目。该项目是为ios开发的,并使用音频播放。首先,我尝试使用@ ionic-native / media lib来跟踪状态(实际上我只需要两个状态-“ started”和“ stopped”),并在浏览器中进行了测试,一切都很好,但是在ios上存在很大的问题。 / p>

第一次播放音频时,根本没有回调。 第二个-在我单击按钮后,同时触发了两个回调-启动和停止。 之后,第二种情况将在所有下一次重复。音频一直都能正常播放。

我尝试使用cordova-plugin-media本身,而不使用@ ionic-native / media,但是问题出在cordova插件中,没有任何改变。

在ios 11.x和12.1上测试 离子4.2.1 科尔多瓦-插件媒体^ 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 callback methods以来一切都已改变

任何帮助将不胜感激

0 个答案:

没有答案