У меня есть проект, построенный на ионах 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 все изменилось
Любая помощь будет оценена