Я занимаюсь разработкой приложения, используя телефонный разрыв для Android. Он состоит из около 25 изображений и аналогичного количества mp3-файлов. Каждый mp3-файл имеет длительность не более 10 секунд. Требование приложения - всякий раз, когда изображение показывается на экране, должен воспроизводиться связанный с ним mp3-файл. Я использую jqtouch swipe для перехода с одной страницы на другую. Я сталкиваюсь со следующими проблемами как на эмуляторе, так и на реальном устройстве (Samsung Galaxy 3) -
После 15-20 изображений звук перестает воспроизводиться как на эмуляторе, так и на galaxy 3. В logcat я получил следующую ошибку
ОШИБКА / AudioFlinger (34): недостаточно памяти для размера AudioTrack = 49216
Я использую следующий код для воспроизведения mp3 файлов
if(mp3file!=null){
mp3file.stop();
mp3file = null;
}
mp3file = new Media("/android_asset/www/name_of_file.mp3",
function() {
console.log("playAudio():Audio Success");
},
function(err) {
},
function(status) {
});
mp3file.play();
Я думаю, что ошибка связана с тем, что объекты audiomanager из api phonegap каждого mp3-файла остаются в памяти.
Я хочу знать, как уничтожить медиа-объект, созданный в JavaScript. Вы можете играть, остановиться, остановиться. Но есть ли в phonegap какой-нибудь метод для Android, чтобы уничтожить его, чтобы он не оставался в памяти после завершения воспроизведения.
- Другая проблема, с которой я сталкиваюсь, связана с действием пролистывания влево в jqtouch для просмотра следующего изображения. Если я в настоящее время просматриваю изображение 1 и пытаюсь просмотреть изображение 2 с помощью действия, проведенного по левому краю, изображение 2 отображается в течение короткого промежутка времени, и после этого изображение 1 отображается в течение некоторого времени, а после этого снова отображается изображение 2. Короче говоря переход от image1 к
image2 не является гладким и имеет мерцающие эффекты. Однако, если я перейду с image2 на image1 с помощью правого смахивания, переход будет плавным.
Спасибо