forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Библиотека для проигрывания звука (http://forum.boolean.name/showthread.php?t=3311)

ViNT 07.05.2007 18:08

Библиотека для проигрывания звука
 
Вложений: 3
Библиотека позволяет воспроизводить файлы как из ФС (jsr75), так и с любого указанного URL.
Для открытия файлов из ФС служит функция loadfilefs, для открытия URL - loadfile.
Пример использования в архиве.

Piligrim 08.05.2007 11:08

Re: Библиотека для проигрывания звука
 
Можно сколько угодно. А вот плэер только один может работать, по крайней мере на старых моторах, с MotoFS.

ViNT 08.05.2007 16:25

Re: Библиотека для проигрывания звука
 
А можно одновременно создать два плеера, создать для них входные потоки, а запускать по очереди?

Piligrim 08.05.2007 17:25

Re: Библиотека для проигрывания звука
 
Да. Так можно. Имелось ввиду, что они не могут одновременно быть в состоянии prefetched, started.

ViNT 10.05.2007 18:32

Re: Библиотека для проигрывания звука
 
Пытался добавить проигрывание видео, но возникла проблема:
функции InitDisplayMode в качестве второго параметра нужно передать идентификатор canvas для вывода. В одном приложении , которое я смог декомпилировать, для этого используется (Object)(this), но This нельзя использовать в статических функциях. Что посоветуете?

Piligrim 11.05.2007 12:58

Re: Библиотека для проигрывания звука
 
посмотреть исходник моей библиотеки capture_lib :)

ViNT 11.05.2007 16:51

Re: Библиотека для проигрывания звука
 
Как ни странно, исходника в архиве я не нашел.
Правда я пытался обработать библиотеку декомпилятором, так она использует класс FW (это как я понял главный класс приложения?), описание которого мне не доступно.

[lol]2Fast4U 12.05.2007 00:12

Re: Библиотека для проигрывания звука
 
хм... я мп3 плеер на мотор и без этого делал =) а на счёт громкости и длины... это уже интересно... =)

ViNT 14.05.2007 19:39

Re: Библиотека для проигрывания звука
 
Вложений: 2
Обновил библиотеку.
Вроде-бы добавил видео, но проверить не могу-мобила видео из жавы не тянет.
Если кто проверит-напишите сюда о результатах.
Кстати в описании не указал, что перед проигрыванием надо вызвать ShowForm

IVenoMI 11.06.2007 13:23

Re: Библиотека для проигрывания звука
 
Так что там по поводу jsr-75?

ViNT 12.06.2007 11:41

Re: Библиотека для проигрывания звука
 
Вложений: 1
Вот библиотека для JSR75.
Правда, проверить не смог, так что если будут глюки-напишите.
(В первом посте).

IVenoMI 12.06.2007 13:24

Re: Библиотека для проигрывания звука
 
Протестил, глюков пока не обнаружено...

ViNT 06.07.2007 22:15

Re: Библиотека для проигрывания звука
 
Вложений: 1
Обновление библиотеки.
Теперь она работает со стандартным плеером, и можно использовать
стандартные функции(возможно, можно использовать совместно с библиотекой Pilgrim'а).
(В первом посте).

Piligrim 26.10.2008 14:08

Ответ: Библиотека для проигрывания звука
 
file:// это тоже URL, следовательно и
Код:

res:=loadfile('file:///root1/message.mid',50);
тоже будет работать. :)

Cliffe Snake 20.11.2008 23:06

Ответ: Библиотека для проигрывания звука
 
А можно в этой либе из архива игры звуковой файл открыть?

ViNT 20.11.2008 23:14

Ответ: Библиотека для проигрывания звука
 
mmapi(std_player) работает со стандартным плеером, так что, по идее, можно открыть ресурс стандартными функциями, вызвать функцию init из библиотеки и потом с её помощью можно управлять плеером. Правда, я это не проверял.

m1kc. 22.12.2008 17:42

Библиотека для проигрывания звука
 
Предлагаю добавить следующие функцмм:
  • Определение, идет ли воспроизведение или, к примеру, закончилось.
  • Определение длины текущего файла
  • Определение текущей позиции

ViNT 22.12.2008 20:28

Ответ: Библиотека для проигрывания звука
 
Определение длины и позиции вроде и так есть.

m1kc. 23.12.2008 15:52

Библиотека для проигрывания звука
 
А, все, понял. Надо было грузить версию std_player.

P.S. Может, переименуешь ее, а то трудно догадаться, что это новая.

m1kc. 23.12.2008 16:40

Библиотека для проигрывания звука
 
Что-то я не могу заставить ее воспроизводить звук - виснет намертво...

PHP код:

media:=loadfile('/'+fpath+fnameaudiojsr75.mp3file100);
media:=play

Оно вот так должно быть?

ger1234567 11.01.2009 21:30

Ответ: Библиотека для проигрывания звука
 
мужики ано в пень мне ненадо я когдато пользовался но потом увидел что в Sony Ericsson оно и так есть!

vad74 31.08.2009 19:00

Ответ: Библиотека для проигрывания звука
 
ViNT
ссылка на "Lib_mmapi(std_player).zip" выдаёт страницу с предупреждением о вирусе "infected with Email-Worm.Win32.Bagle.gen virus". Пожалуйста проверь и перезалей файл. А то плеер никак не могу скачать.

ViNT 31.08.2009 19:34

Ответ: Библиотека для проигрывания звука
 
Вложений: 1
Цитата:

Сообщение от vad74 (Сообщение 116977)
ViNT
ссылка на "Lib_mmapi(std_player).zip" выдаёт страницу с предупреждением о вирусе "infected with Email-Worm.Win32.Bagle.gen virus". Пожалуйста проверь и перезалей файл. А то плеер никак не могу скачать.

Касперский ничего не показывает.
Какой браузер и антивирус?

Удалил лишние бинарники, может в них дело.

vad74 01.09.2009 11:27

Ответ: Библиотека для проигрывания звука
 
ViNT
Спасибо. Вот теперь работает. Скачал.
У меня стоит Касперский 6 с последними базами. Браузер Опера. При нажатии на ссылку ругался не Касперский в трее, а появлялась в Опере страница с предупреждением от Касперского (такого ранее никогда не видел).

vad74 04.09.2009 13:55

Ответ: Библиотека для проигрывания звука
 
ViNT
Поддержу m1kc - audiojsr75 виснет почему то. Брал его из Lib_mmapi(std_player).zip поста №23. Для отладки использую KEmulator. В корень его файловой системы накидал МР3шек. Краткий текст:
Root := get_roots; // взять корень файловой системы
parse.line(Root, '|'); // разбить его по папкам в массив
Root := parse.get(0); // выделить корень. Root = 'root1/'
i := audiojsr75.loadfile('/' + Root + 'music.mp3', 'audio/mpeg', 50);
i := audiojsr75.play;
виснет уже на loadfile. Файл есть, его видет get_files(Root).
Попробовал использовать mmapi из архива Lib_mmapi.zip первого поста.
Не виснет, но выдаёт результат обоих вызовов i = 0.
i := mmapi.loadfile('/' + Root + 'music.mp3', 50);
i := mmapi.play;
Что можно ещё попробовать?

ViNT 04.09.2009 22:00

Ответ: Библиотека для проигрывания звука
 
А на телефоне работает?(самому сейчас не на чем подебажить.)
Можно поэкспериментировать с количеством "/" в начале пути.

vad74 07.09.2009 11:56

Ответ: Библиотека для проигрывания звука
 
Да, пробовал на СониЭрикссон К800. Ведёт себя точно как в эмуляторе. mmapi - не играет. audiojsr75 - виснет при попытке загрузить файл. Можно ли проовать mmapi2, или это только для Моторолы?
Каким эмулятором с файловой системой Вы отлаживали эти библиотеки? И на каком телефоне испытывали? Правильно ли у меня написаны вызовы в посте выше? Может надо ещё делать вызовы других функций (init)?

vad74 11.09.2009 15:46

Ответ: Библиотека для проигрывания звука
 
Попробовал на эмуляторе mmapi2 виснет при попытке загрузить файл, как и audiojsr75. Затем поигрался с mmapi и "количеством "/" в начале пути". Заработало. Надо было писать: " 'file:///' + Dir + FileName". А я раньше посмотрел Ваш исходник mmapi2 на Яве. Там уже стояло 'file://' + FileName, вот это сбило с пути истиного. Теперь играет и Миди и МР3 в телефоне. KEmulator МР3 не заиграл, фиг с ним.

Вопрос в тему. Как можно отловить что песня закончила играть?

Вопрос не в тему, но всё же задам. Я использую Тип мидлета - под старину. Канва моей программы в высоту не на весь экран (посередине), осталось место внизу, и в верху виден уровень заряда батареии (что и хочу). Подскажите как мне использовать пустое пространство внизу чтобы вывести подписи на софт клавиши и меню на них? Какие функции Паскаля или библиотеки?

vad74 14.09.2009 19:37

Ответ: Библиотека для проигрывания звука
 
Ещё раз спрошу. Использую библиотеку mmapi. Как можно отловить что песня закончила играть?

ViNT 14.09.2009 20:20

Ответ: Библиотека для проигрывания звука
 
Можно по таймеру сравнивать позицию с длиной файла.

Piligrim 15.09.2009 00:03

Ответ: Библиотека для проигрывания звука
 
В библиотеке player есть все чтобы следить за событиями плеера :)
Похоже пора браться за базу данных. Уже сами не знаем, чему научили МР

vad74 15.09.2009 11:04

Ответ: Библиотека для проигрывания звука
 
pilgrim
Библиотека player играет файлы только из ресурса самой программы, или может играть файлы и с флешки телефона? Т.е. можно использовать её и Lib_mmapi вместе?

Piligrim 15.09.2009 15:49

Ответ: Библиотека для проигрывания звука
 
Их там две версии. Использовать надо Lib_mmapi(std_player).zip

vad74 15.09.2009 16:45

Ответ: Библиотека для проигрывания звука
 
Как я писал выше обе либы из Lib_mmapi(std_player).zip у меня не заработали. Использую Lib_mmapi и сделал контроль по таймеру. Ведь всё равно "термометр" проигрывания рисовать надо.

Piligrim 16.09.2009 00:04

Ответ: Библиотека для проигрывания звука
 
Могу назвать одну из причин. Все дело в том, что МР не добавляет класс стандартного плеера, если в программе не используются стандартные функции для работы с ним (хотя-бы одна, т.е. достаточно StopPlayer) и соответственно библиотеки его использующие виснут, вернее вылетают с ошибкой.

vad74 16.09.2009 12:33

Ответ: Библиотека для проигрывания звука
 
А вот это стоящая мысль! Дествительно, при использовании функций библиотек я вызываю их с именем: "библа.функц" . Поэтому не было прямых вызовов стандартного плеера.
Для понимания принципов работы, объясните мне что значит "стандартный плеер". Я понимаю так, в мобиле есть движок умеющий играть файл МР3. Прога на яве должна лишь вызывать его и давать ему адрес файла, и движок мобилы начинает играть. Lib_mmapi не является стандартным плеером, это значит что она содержит свой движок проигрывания МР3?

Cliffe Snake 16.09.2009 15:29

Ответ: Библиотека для проигрывания звука
 
Vad74, под стандартным плеером здесь понимаются функции для проигрывания звука, которые уже содержатся в МП. Вот они:
PHP код:

function OpenPlayer(resource:stringmimetype:string):boolean
function 
GetPlayerDuration:integer
function 
SetPlayerCount(loopCount:integer):boolean
function 
StartPlayer:boolean
procedure StopPlayer


vad74 16.09.2009 17:33

Ответ: Библиотека для проигрывания звука
 
Кажется ситуация прояснилась. Значит для использования Lib_mmapi(std_player).zip я должен открывать файл через audiojsr75.loadfile(), а далее управлять как обычным плееером (напр StartPlayer). Просто я раз уж подключил внешнию библу то и вызовы пытался делать через него - audiojsr75.play. A стандартные функции не использовал.
А есть ли разница между вызовами StartPlayer и audiojsr75.play? И StopPlayer соответствует audiojsr75.pause или audiojsr75.destroy?

ViNT 16.09.2009 19:31

Ответ: Библиотека для проигрывания звука
 
Между StartPlayer и audiojsr75.play разницы нет, audiojsr75.pause только останавливает плеер (как StopPlayer), а audiojsr75.destroy полностью закрывает плеер, после чего для его запуска нужно снова открыть файл.

Trazzy 18.09.2009 00:44

Ответ: Библиотека для проигрывания звука
 
Значит вот где собака зарылась.. а я то думал..

MoteX 22.10.2009 09:54

Ответ: Библиотека для проигрывания звука
 
пишу loadfilefs('e:/mp3/'+tn ,'audio/mpeg',50); меня компиль шлет в известном направлении...как написать?использую jsr75

Sk.MaCh 22.10.2009 20:54

Ответ: Библиотека для проигрывания звука
 
Цитата:

Сообщение от MoteX (Сообщение 122150)
пишу loadfilefs('e:/mp3/'+tn ,'audio/mpeg',50); меня компиль шлет в известном направлении...как написать?использую jsr75

нужно приравнять к переменной integer, к примеру: k:=loadfile('/e:/music.mp3','audio/mpeg',100) и все заработает) скачай исходник в 1м посте, там все с описанием)

MoteX 25.10.2009 11:12

Ответ: Библиотека для проигрывания звука
 
Большое спасибо:)

vad74 11.01.2010 11:53

Ответ: Библиотека для проигрывания звука
 
ViNT
Удалось мне запустить в работу audiojsr75 из Lib_mmapi(std_player). Для этого пришлось добавить в проект модуль P.class, как советовали на другом сайте по MidletPascal. И всё заработало. http://forum.boolean.name/showthread...972#post132972
Обнаружил разницу в работе. mmapi выдаёт длительность и позицию в милисекундах, а audiojsr75 в микросекундах. Зачем такая точность?

ViNT 11.01.2010 15:23

Ответ: Библиотека для проигрывания звука
 
На счет добавления P.class - возможно забыл указать в описании, действительно, если не используются стандартные функции плеера, нужно добавлять этот класс вручную, иначе MP добавляет его сам.

На счет микро- и миллисекунд: переделал на микросекунды поскольку j2me изначально возвращает в микросекундах, что приводило к путанице (сам изначально неправильно прочитал, и думал, что значение идет сразу в миллисекундах). В общем, просто решил привести все к стандарту j2me, чтобы не было путаницы.

Yadro 24.08.2013 14:34

Ответ: Библиотека для проигрывания звука
 
Попытался завести на нокиа, out of memory, большие файлы воспроизвести не получиться?

ViNT 26.08.2013 22:50

Ответ: Библиотека для проигрывания звука
 
Цитата:

Сообщение от Yadro (Сообщение 265792)
Попытался завести на нокиа, out of memory, большие файлы воспроизвести не получиться?

Тут одно из двух - либо просто не хватает памяти, тогда ничего не поделать, либо память отжирается на организацию потокового доступа к файлу.

Можно попробовать загрузить файл стандартной функцией MP (добавив file:// к пути). Дальше можно будет пользоваться другими функциями библиотеки.

Yadro 26.08.2013 23:22

Ответ: Библиотека для проигрывания звука
 
Вложений: 1
Цитата:

Сообщение от ViNT (Сообщение 265952)
Тут одно из двух - либо просто не хватает памяти, тогда ничего не поделать, либо память отжирается на организацию потокового доступа к файлу.

Можно попробовать загрузить файл стандартной функцией MP (добавив file:// к пути). Дальше можно будет пользоваться другими функциями библиотеки.

Хочется заметить, что другие проигрыватели (ttpod например), спокойно воспроизводят over 12мб файлы. Хотя еще не получилось воспроизвести стд методом, я так понимаю если не запашет, то и библиотека не поможет.

Еще вопросик, а case можно чем то заменить, кроме if'ов? Можно в личку:)

Щас развалюсь
Вложение 19619

ViNT 28.08.2013 10:08

Ответ: Библиотека для проигрывания звука
 
Цитата:

Сообщение от Yadro (Сообщение 265954)
Хочется заметить, что другие проигрыватели (ttpod например), спокойно воспроизводят over 12мб файлы. Хотя еще не получилось воспроизвести стд методом, я так понимаю если не запашет, то и библиотека не поможет.

Еще вопросик, а case можно чем то заменить, кроме if'ов? Можно в личку:)

Щас развалюсь
Вложение 19619

Если не получится, надо смотреть, почему другие работают, как там все реализовано.

case можно заменить только конструкцией else if, других вариантов условных переходов в MP нет.


Часовой пояс GMT +4, время: 03:09.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot