Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.17.6.75] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте, у меня возникла проблема с воспроизведением большого mp3 файла. Мидлет выбрасывает ошибку Out Of Memory если я пытаюсь воспроизвести файл, размер которого, как я предполагаю, больше оперативной памяти телефона или эмулятора.
Вот функция создания плеера: public void myplayer(FileConnection fc) { String text = "Воспроизведение файла" ; tb = new TextBox("Проигрыватель", text, 128, TextField.UNEDITABLE); Display.getDisplay(this).setCurrent(tb); tb.setCommandListener(this); tb.addCommand(Exit); tb.addCommand(VolDOWN); tb.addCommand(VolUP); tb.addCommand(Play); try { is =fc.openInputStream(); player = Manager.createPlayer(is, "audio/mpeg"); if (player==null) { errorMessage(); } else { player.addPlayerListener(this); player.realize(); player.prefetch(); volc = (VolumeControl)player.getControl("VolumeControl"); } } catch(Exception x) { errorMessage(); } } Подскажите как правильно воспроизвести файл с файловой системы, чтобы избавится от этой ошибки? ЗЫ. К теме прикрепляю проект приложения из NetBeans. Прикреплённый файлplayermenedjer.zip (35,81 Кбайт, скачиваний: 189) ЗЫЫ. Прошу не ругать за плохой код, я только учусь. |
Сообщ.
#2
,
|
|
|
Ау! Здесь есть кто живой, помогите пожалуйста, а то меня уже посещают мысли, что надо как-то читать файл кусками в буфер и скармливать это все плееру.
|
Сообщ.
#3
,
|
|
|
Проблема, как оказалось, банальная. Нужно использовать другой конструктор для создания плеера. Изначально я использовал конструктор
createPlayer(is stream, String type) ну и соответственно файл который я хотел воспроизводить до создания плеера был уже открыт во входящий поток is, поэтому когда я попробовал использовать конструктор createPlayer(String locator) плеер не создавался, так как файл был уже открыт. Проблема решилась просто: удалил переменную is и начал использовать другой конструктор. |
Сообщ.
#4
,
|
|
|
Цитата studentus @ Проблема, как оказалось, банальная. Нужно использовать другой конструктор для создания плеера. Изначально я использовал конструктор createPlayer(is stream, String type) ну и соответственно файл который я хотел воспроизводить до создания плеера был уже открыт во входящий поток is, поэтому когда я попробовал использовать конструктор createPlayer(String locator) плеер не создавался, так как файл был уже открыт. Проблема решилась просто: удалил переменную is и начал использовать другой конструктор. а можно поподробнее? переменную is убрал плеер создаю так player = Manager.createPlayer(fc.getURL()); и у меня вываливается ошибка, или надо по другому? |
Сообщ.
#5
,
|
|
|
Параметром в конструкторе должна быть строка-локатор, которая для воспроизведения с флэшки должна выглядеть так: FILE:\\\E:\папка\...\файл.
У вас передается похожее значение? |
Сообщ.
#6
,
|
|
|
Вернее так: FILE:///E:/папка/.../файл
|
Сообщ.
#7
,
|
|
|
Требуется разрезать видеофайл мпег на составляющие так чтобы их по отдельности читал виндовый проигрыватель или хотя бы просто файл с начала но не дописанный до конца. Как это можно сделать?
|