Я пытаюсь воспроизвести звук из кода JavaScript, загруженного в WebView из ресурсов:
WebView web_view = (WebView) findViewById(R.id.web_view);
web_view.getSettings().setJavaScriptEnabled(true);
web_view.setWebChromeClient(new WebChromeClient());
web_view.loadUrl("file:///assets/www/index.html");
Я испробовал все комбинации следующих способов воспроизведения звука с файлами OGG, MP3 и WAV, код JavaSrciptнаходится в assets / www / js / play.js:
audio = new Audio("../audio/sound.mp3");
audio.load();
audio.play();
audio = new Audio("./audio/sound.mp3");
audio.load();
audio.play();
audio = new Audio("audio/sound.mp3");
audio.load();
audio.play();
audio = new Audio("file:///android_asset/www/audio/sound.mp3");
audio.load();
audio.play();
audio = new Audio();
audio.src = document.getElementById("audio_tag").src;
audio.load();
audio.play();
Где audio_tag равен <audio id="audio_tag" src="audio/sound.mp3" preload="auto"></audio>
, также пробуется со всеми комбинациями путей и форматов.
Но звук не воспроизводитсяи единственное, что может быть не так, это следующая общая ошибка:
E / MediaPlayer (1530): ошибка (1, -2147483648)
Гадание из этого информационного сообщения,путь к аудиофайлу должен быть правильным для второго и пятого случаев:
I/StagefrightPlayer(33): setDataSource('file:///android_asset/www/audio/sound.mp3');
Хотя этот вопрос можно считать дубликатом Android WebView, воспроизводящего аудио с использованием JavaScript , и ответ не помогаетво всяком случае, так как shouldOverrideUrlLoading никогда не вызывается, я пытаюсь уточнить эту проблему здесь более точно.
Есть ли у вас какие-либо подсказки, что может быть не так или как узнать, что это такое?
Thank you.
Редактировать: Тестирование в Galaxy Gio с Android 2.3 дает мне другой набор ошибок, хотя:
02-06 17: 15: 13.829: V / PlayerDriver (95): AddToScheduler 02-06 17: 15: 13.829: V / PlayerDriver (95): PendForExec 02-06 17: 15: 13.829: V / PlayerDriver (95): OsclActiveScheduler :: Current 02-06 17: 15: 13.829: V /PlayerDriver (95): StartScheduler 02-06 17: 15: 13.829: V / PVPlayer (95): отправить PLAYER_SETUP 02-06 17: 15: 13.829: V / PlayerDriver (95): отправить код игрока: 2 02-06 17:15: 13.829: V / PlayerDriver (95): CommandCompleted 02-06 17: 15: 13.829: V / PlayerDriver (95): Завершенная команда PLAYER_SETUP status = PVMFSuccess 02-06 17: 15: 13.829: V / PVPlayer (95):setDataSource (файл: ///android_asset/www/audio/sound.mp3) 02-06 17: 15: 13.839: V / PVPlayer (95): prepareAsync 02-06 17: 15: 13.839: V / PVPlayer (95):источник данных = файл: ///android_asset/www/audio/sound.mp3 02-06 17: 15: 13.849: V / PlayerDriver (95): отправить код игрока: 3 02-06 17: 15: 13.849: V / PlayerDriver(95): handleSetDataSource 02-06 17: 15: 13.849: V / PlayerДрайвер (95): handleSetDataSource - сканирование на расширение
02-06 17: 15: 13.849: V / PlayerDriver (95): HandleInformationalEvent: PVMFInfoErrorHandlingStart 02-06 17: 15: 13.849: V / PlayerDriver (95): HandleInformationalEvent:type = 26 UNHANDLED 02-06 17: 15: 13.849: W / MediaPlayer (4361): информация / предупреждение (1, 26) 02-06 17: 15: 13.849: V / PlayerDriver (95): CommandCompleted 02-06 17:15: 13.849: V / PlayerDriver (95): завершенная команда PLAYER_SET_DATA_SOURCE status = PVMFErrNotSupported 02-06 17: 15: 13.849: E / PlayerDriver (95): команда PLAYER_SET_DATA_SOURCE завершена с ошибкой или информация
PVMFErN15: 13.849: E / MediaPlayer (4361): ошибка (1, -4) 02-06 17: 15: 13.849: V / PVPlayer (95): run_init s = -2147483648, отменено = 0 02-06 17:15:13.849: V / PlayerDriver (95): HandleInformationalEvent: PVMFInfoErrorHandlingComplete 02-06 17: 15: 13.849: W / PlayerDriver (95): PVMFInfoErrorHandlingComplete
02-06 17: 15: 13.939: I / MediaPlayer (4361)1,26) 02-06 17: 15: 13,939: E / MediaPlayer (4361): ошибка (1, -4)02-06 17: 15: 13.939: V / PVPlayer (95): сброс настроек 02-06 17: 15: 13.939: V / PlayerDriver (95): отправить код игрока: 18 02-06 17: 15: 13.939: V / PlayerDriver(95): handleCancelAllCommands 02-06 17: 15: 13.939: V / PlayerDriver (95): CommandCompleted 02-06 17: 15: 13.939: V / PlayerDriver (95): завершенная команда PLAYER_CANCEL_ALL_COMMANDS status = PVMFSuccess 02-06 17:15: 13.939: V / PlayerDriver (95): отправьте код игрока: 11 02-06 17: 15: 13.939: V / PlayerDriver (95): handleReset 02-06 17: 15: 13.939: V / PlayerDriver (95): CommandCompleted 02-06 17: 15: 13.939: V / PlayerDriver (95): завершенная команда PLAYER_RESET status = PVMFSuccess 02-06 17: 15: 13.939: V / PlayerDriver (95): отправить код игрока: 17 02-06 17: 15: 13.939: V / PlayerDriver (95): handleRemoveDataSource 02-0617: 15: 13.939: V / PlayerDriver (95): команда завершена 02-06
17: 15: 13.939: V / PlayerDriver (95): Завершенная команда
Статус PLAYER_REMOVE_DATA_SOURCE = PVMFSuccess 02-06 17: 15: 13.939:
V / PlayerDriver (95): удаление источника данных завершено 02-06 17: 15: 13.939:
V / PVPlayer (95): файл unmap