У меня есть скрипт ниже на моей странице, который создает все jplayers при загрузке страницы, и когда нажимается кнопка воспроизведения, воспроизводится звук.Но у меня странная проблема: для некоторых аудио кнопка воспроизведения запускается и внезапно останавливается, ничего не воспроизводя.
Проблема только на устройствах Mac и других мобильных устройствах IOS
Нижемой код, который я использую для воспроизведения аудиофайлов
<script>
require(["jquery"], function($) {
$(document).ready(function(){
/*---Create a jplayer instance on click on the play image---*/
var mediaDetailJson = '<?php echo json_encode($mediaDetail); ?>';
mediaDetailJson = $.parseJSON(mediaDetailJson);
$(".jp-play").on('click', function(e) {
e.preventDefault();
var jPlayerId = $(this).closest('.jp-audio').prev().attr('id');
var counter = jPlayerId.replace(/[^\d]+/, '');
counter = parseInt(counter);
$("#"+jPlayerId).jPlayer({
ready: function (event) {
$(this).jPlayer("setMedia", {
title: mediaDetailJson[counter]['title'],
mp3: mediaDetailJson[counter]['path']
});
},
play: function() { // To avoid multiple jPlayers playing together.
$(this).jPlayer("pauseOthers");
},
swfPath: "https://www.voicebooking.com/js",
nativeSupport: true,
cssSelectorAncestor: "#jp_container_"+counter,
wmode: "window",
globalVolume: true,
useStateClassSkin: true,
autoBlur: false,
smoothPlayBar: true,
keyEnabled: true,
remainingDuration: true,
toggleDuration: true,
volume: 1
}).jPlayer("play");
});
});
});
function updateHeaderTitle(text){
jQuery("#audio_heading_text").html(text);
jQuery("#audio_product").val(text);
}
</script>
Я провел некоторое исследование, и некоторые люди сказали, что IOS не поддерживает воспроизведение аудиофайлов в документе. Уже поэтому требуется какое-то пользовательское событие.Затем я попытался с помощью приведенного ниже сценария, но все равно безуспешно.
<script>
require(["jquery"], function($) {
$(document).ready(function(){
/*---Create a jplayer instance on click on the play image---*/
var mediaDetailJson = '<?php echo json_encode($mediaDetail); ?>';
mediaDetailJson = $.parseJSON(mediaDetailJson);
$(".jp-play").on('click', function(e) {
e.preventDefault();
var jPlayerId = $(this).closest('.jp-audio').prev().attr('id');
var counter = jPlayerId.replace(/[^\d]+/, '');
counter = parseInt(counter);
$("#"+jPlayerId).jPlayer({
ready: function (event) {
$(this).jPlayer("setMedia", {
title: mediaDetailJson[counter]['title'],
mp3: mediaDetailJson[counter]['path']
});
},
play: function() { // To avoid multiple jPlayers playing together.
$(this).jPlayer("pauseOthers");
},
swfPath: "https://www.voicebooking.com/js",
nativeSupport: true,
cssSelectorAncestor: "#jp_container_"+counter,
wmode: "window",
globalVolume: true,
useStateClassSkin: true,
autoBlur: false,
smoothPlayBar: true,
keyEnabled: true,
remainingDuration: true,
toggleDuration: true,
volume: 1
}).jPlayer("play");
});
});
});
function updateHeaderTitle(text){
jQuery("#audio_heading_text").html(text);
jQuery("#audio_product").val(text);
}
</script>
Кто-нибудь знает, что мне не хватает?На устройстве Mac, в браузере Safari, я получаю следующую ошибку:
Необработанный отказ от обещания: NotAllowedError (DOM Exception 35)
Но только для проблемных аудио.
Пожалуйста, помогите!