Soundmanager2 грузит но не играет
НАСТРОЙКА Установлен Soundmanager2 на моем сайте. Ссылки на MP3 создаются автоматически.
ПРОБЛЕМА Используя 360-й интерфейс, я вижу загрузку звука, потому что он воспроизводит анимацию, как показано в левом верхнем углу этой демонстрации (http://www.schillmania.com/projects/soundmanager2/demo/360-player/), но он не играет и счетчик секунд не двигается.
КАК ЗАГРУЗИТЬ ИГРОКА
<link rel="stylesheet" type="text/css" href="/css/360player.css" />
<link rel="stylesheet" type="text/css" href="/css/flashblock.css" />
<!-- special IE-only canvas fix -->
<!--[if IE]><script type="text/javascript" src="/js/excanvas.compiled.js"></script><![endif]-->
<!-- Apache-licensed animation library -->
<script type="text/javascript" src="/js/berniecode-animator.js"></script>
<script type="text/javascript" src="/js/soundmanager2.js"></script>
<script type="text/javascript" src="/js/360player.js"></script>
<script type="text/javascript">
soundManager.setup({
// path to directory containing SM2 SWF
url: '/swf/', debugMode: true
});
</script>
КОД ОТЛАГА
-- SoundManager 2: HTML5 support tests (/^(probably|maybe)$/i): mp3: true (preferring flash), mp4: true (preferring flash), ogg: true, wav: true -- soundmanager2.js:1155
-- SoundManager 2 V2.97a.20121104 (AS3/Flash 9) + HTML5 audio, high performance mode, normal polling, wmode: transparent, flashBlock mode -- soundmanager2.js:1155
soundManager::createMovie(): Trying to load /swf/soundmanager2_flash9_debug.swf soundmanager2.js:1155
soundManager::initMovie(): Waiting for ExternalInterface call from Flash... soundmanager2.js:1157
soundManager::externalInterfaceOK() (~2 ms) soundmanager2.js:1157
soundManager::init() soundmanager2.js:1157
soundManager: Attempting JS to Flash call... soundmanager2.js:1157
(Flash): SM2 SWF V2.97a.20121104 (AS3/Flash 9) soundmanager2.js:1157
Flash security sandbox type: remote soundmanager2.js:1157
(Flash): JS to/from Flash OK soundmanager2.js:1157
(Flash): Enabling polling, 10 ms interval soundmanager2.js:1157
-- SoundManager 2 loaded (OK) -- soundmanager2.js:1155
soundManager: Firing 1 onready() item soundmanager2.js:1157
threeSixtyPlayer.init() soundmanager2.js:1157
threeSixtyPlayer.init(): Found 5 relevant items. soundmanager2.js:1157
handleClick() soundmanager2.js:1157
soundManager.createSound(): ui360Sound0 (http://clients.activemd.net/external/x.mp3) soundmanager2.js:1155
SMSound() merged options: {
id: ui360Sound0,
url: http://clients.activemd.net/external/x.mp3,
onplay: { pl.removeClass(this._360data.oUIBox,this._360data.className); t... },
onstop: { pl.removeClass(this._360data.oUIBox,this._360data.className); t... },
onpause: { pl.removeClass(this._360data.oUIBox,this._360data.className); t... },
onresume: { pl.removeClass(this._360data.oUIBox,this._360data.className); t... },
onfinish: { var nextLink; pl.removeClass(this._360data.oUIBox,this._360data... },
onbufferchange: { if (this.isBuffering) { pl.addClass(this._360data.oUIBox,pl.css... },
whileloading: { if (this.paused) { self.updatePlaying.apply(this); } }... },
whileplaying: { self.updatePlaying.apply(this); this._360data.fps++; }... },
useWaveformData: 0,
useEQData: 0,
usePeakData: 0,
autoLoad: false,
autoPlay: false,
loops: 1,
multiShot: true,
multiShotEvents: false,
pan: 0,
stream: true,
usePolicyFile: false,
volume: 100,
isMovieStar: false,
bufferTime: 3
} soundmanager2.js:1157
(Flash): SoundManager2_SMSound_AS3: Got duration: 0, autoPlay: false soundmanager2.js:1157
SMSound.play(): Attempting to load "ui360Sound0" soundmanager2.js:1155
SMSound.load(): http://clients.activemd.net/external/x.mp3 soundmanager2.js:1155
SMSound.play(): "ui360Sound0" is starting to play soundmanager2.js:1157
fanOut: ui360Sound0: http://clients.activemd.net/external/x.mp3 soundmanager2.js:1157
SMSound._onbufferchange(): 1 soundmanager2.js:1157
(Flash): start (ui360Sound0): 0 soundmanager2.js:1157
SMSound._onbufferchange(): 0 soundmanager2.js:1157
SMSound._onload(): "ui360Sound0" loaded.
ЧУВСТВИТЕЛЬНОСТЬ Ссылки нажимаются в моем представлении Chrome Developer, и MP3 открывается в отдельном окне браузера и воспроизводится нормально (по умолчанию, когда вы нажимаете на ссылку MP3 в Chrome)
ОДНА ВОЗМОЖНАЯ ТЕОРИЯ Звуки загружаются, но не говорите "хорошо, продолжайте и играйте сами".
ДРУГАЯ ВОЗМОЖНАЯ ТЕОРИЯ. JQuery как-то с ней связывается.
Пожалуйста, помогите мне определить, почему мои звуки загружаются, но не воспроизводятся.
Благодарю. стог
1 ответ
У меня просто была похожая проблема с автоигрой. В Safari все работало нормально, но Chrome и FireFox, IE просто отследили, что они играют, и ничего не происходит. В конечном итоге я добавил setTimeout для вызова soundManager.play(id), но мне не нравится, что мне пришлось это делать.
Я заметил, что другие разработчики используют события click() для запуска песни. Я не знаю, нужно ли это незначительное отставание, маршрутизирующее его через события щелчка, заставить его играть или нет, но я попытался установить тайм-аут на 200, и 500+ миллисекунд, казалось, были билетом. Я также подумал, что, возможно, событие буферизации или событие загрузки может запустить воспроизведение, если автозапуск не удался. Также вызов soundManager.play(id) сразу после soundManager.createSound(e) абсолютно ничего не делает с моей стороны.
Я добавил событие onbufferchange и проверил playState. Если он не играл, я сказал, чтобы он играл. Это избавило от необходимости setTimeout.