forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Работа музыки и ресурсных файлов (http://forum.boolean.name/showthread.php?t=15824)

bormotan 10.11.2011 19:38

Работа музыки и ресурсных файлов
 
простите за флуд , кто имеет опыт использования музыки и ресурсов в мидлетах ?
две простейшие программы у меня компилятся но работать упорно не хотят как надо (ни на телефоне ни даже на компе в эмуляторе) . вопрос , что неправильно , ставит в полнейший ступор . просто нЕгде ошибке спрятаться . что написано в справке я уже читал . вот код

var
res : resource;
line : string;
index : integer;
begin
res := openResource('/data.txt');
setcolor(0,0,0);
if (resourceAvailable(res)) then

begin

line := readLine(res);

closeResource(res);
end;

showForm;
index := formAddString('Line is: ' + line);
repaint;
delay(5);
end.
(эксперимент на использование ресурсов)

program NewProject;
uses user;
var exit:command;
begin
exit:=createcommand('Выход',CM_BACK,1);
addcommand(exit);
setcolor(100,100,100);
if openPlayer('/Rahmaninov.mp3','audio/mpeg') then
drawtext('Слушаем музыку',7,7)
else
drawtext('ошибка',7,7);
if startplayer then
delay(2000);
clrscr;
drawtext('продожлжительность музыки',7,17);
drawtext(integertostring(getPlayerDuration),7,27);
delay(getPlayerDuration);
repeat
delay(100);
until getclickedcommand=exit;

repaint;
delay(2000);
end.
(на использование музыки)

PassCall 11.11.2011 20:52

Ответ: Работа музыки и ресурсных файлов
 
1. проверь регистр музыкально файла. Большие буквы<>маленькие буквы.
2. Формат mp3 (впрочем, как и wav) имеет в своих настройках 100500 кодеков. На мобильных устройствах работают только некоторые.

bormotan 12.11.2011 14:43

Ответ: Работа музыки и ресурсных файлов
 
1 пункт - исключено , я не настолько юзер . 2 - увы , возможно

bormotan 12.11.2011 14:54

Ответ: Работа музыки и ресурсных файлов
 
1 пункт - исключено , я не настолько юзер . 2 - увы , возможно . а ресурсные файлы ???? в чем проблема ? я читал что JAVA внутри себя понимает UTF-8 , ну и создал data.txt блокнотом в UTF-8. смотрю в книгу вижу фигу . даже если у меня была задержка после основного кода программы delay(5), мидлет выдавал титанически большую задержку . при попытке выяснить , какое значение принимает resourceAvailable(res) , цикл if не дал ни одну из своих двух веток-результатов . толи выполнение виснет даже раньше , толи определение resourceAvailable(res) глючит . из-за этих двух казалось бы элементарных вещей я не могу написать мои классные задумки . ПЛИЗЗЗЗЗ ХЕЛП !!!!



Цитата:

Сообщение от PassCall (Сообщение 209292)
2. Формат mp3 (впрочем, как и wav) имеет в своих настройках 100500 кодеков. На мобильных устройствах работают только некоторые.

какие именно ? сам знаешь ? я использую конвертер аимпа встроенный . как мне перегнать музыку чтобы она на JAVA пошла ??

PassCall 12.11.2011 15:09

Ответ: Работа музыки и ресурсных файлов
 
Начет ресурсов могу подсказать 2 вещи:
1. Всегда сать в конце ресурса (доплнительно) пустую строчку, иначе при прочтении виснет.
2. Если используеш MidletPascal второй версии, и тебе хочеться читать из ресурса русские символы, держи:
PHP код:

Function Decoder(Deco:string):string;//превращение кракозябр в русские буквы
            
var
            
ch:char;
            
ds:string;
            
d_temp:integer;
            
_i:integer;

            
begin
                ds
:='';
                for 
_i:=1 to length(Deco) do
                
begin
                ch
:=getchar(deco,(_i-1));
                
d_temp:=ord(ch);
                if 
d_temp>122 then ds:=ds+chr(d_temp+1104) else ds:=ds+getchar(deco,_i-1)
                
end;
            
decoder:=ds;
            
end


AVL 12.11.2011 16:31

Ответ: Работа музыки и ресурсных файлов
 
Я так русский текст из ресурсов загружаю:
Код:

  openres('lang.txt');
  i := 1;
  repeat
    lang[i] := win2utf(readline(res));
  until lang[i] = '';

(используется библиотека resloader)

PassCall 12.11.2011 16:41

Ответ: Работа музыки и ресурсных файлов
 
Дык тут даже библиотека не нужна =)

AVL 12.11.2011 16:46

Ответ: Работа музыки и ресурсных файлов
 
Во-первых, resloader вроде как жрет меньше оперативки, чем стандартные функции, во-вторых, проще перекодировать в utf8, и в-третьих, стандартные функции вроде как не видят конец файла.

bormotan 13.11.2011 11:53

Ответ: Работа музыки и ресурсных файлов
 
Цитата:

Сообщение от PassCall (Сообщение 209357)
1. Всегда писать в конце ресурса (дополнительно) пустую строчку, иначе при прочтении виснет.
[/php]

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

AVL 13.11.2011 14:09

Ответ: Работа музыки и ресурсных файлов
 
Перепутал немного. Вот нормальный вариант:
Код:

  openres('lang.txt');
  i := 1;
  repeat
    lang[i] := win2utf(resloader.readline);
    i := i + 1;
  until lang[i-1] = '###';


PassCall 13.11.2011 14:59

Ответ: Работа музыки и ресурсных файлов
 
Цитата:

Сообщение от bormotan (Сообщение 209506)
спасибо , помогло . а вот русские символы ни твоя идея ни AVL , у меня не заработали . как были кракозябры , так и остались , только другие кракозябры

А какая у тебя версия МидлетПаскаля?

bormotan 13.11.2011 20:48

Ответ: Работа музыки и ресурсных файлов
 
Работаю с 2.01 , но есть 3.4 , в удобстве которого я пока не уверился
AVL , не знаю какую версию библиотеки реслодер используешь ты ( коих тут около двух-трех ) , но снова не работает
надеюсь , мне не придется писать свою версию библиотеки , в которой я всю понимаю и знаю что к чему ((

bormotan 16.11.2011 12:13

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

PassCall 17.11.2011 11:34

Ответ: Работа музыки и ресурсных файлов
 
Цитата:

Сообщение от bormotan (Сообщение 209901)
а насчет музыки никто ничего полезного не скажет ??????

Установи что нибудь вроде Sound Forge (для работы со звуком) и поэксперементируй с кодеками. Один два должны работать. А фишка в том что на самом мобильном через плеер любой формат производится а через j2me нефига.

bormotan 27.11.2011 12:03

Ответ: Работа музыки и ресурсных файлов
 
PHP код:

program pr1;
var 
bool:boolean;
    
i,b:integer;
begin
showform
;
bool:=false;
 
repeat
 
if getkeyclicked=ke_key0 then i:=formaddstring('0');
 if 
getkeyclicked=ke_key1 then i:=formaddstring('1');
 if 
getkeyclicked=ke_key2 then i:=formaddstring('2');
 if 
getkeyclicked=ke_key3 then i:=formaddstring('3');
 if 
getkeyclicked=ke_key4 then i:=formaddstring('4');
 if 
getkeyclicked=ke_key5 then i:=formaddstring('5');
 if 
getkeyclicked=ke_key6 then i:=formaddstring('6');
 if 
getkeyclicked=ke_key7 then i:=formaddstring('7');
 if 
getkeyclicked=ke_key8 then i:=formaddstring('8');
 if 
getkeyclicked=ke_key9 then i:=formaddstring('9');
 if 
getkeyclicked=ke_none then i:=formaddstring('ни одна клавиша не нажата');
 
 if 
keytoaction(getkeyclicked)=ga_none   then b:=formaddstring('ни одна');
 if 
keytoaction(getkeyclicked)=ga_up     then b:=formaddstring('вверх');
 if 
keytoaction(getkeyclicked)=ga_down   then b:=formaddstring('вниз');
 if 
keytoaction(getkeyclicked)=ga_left   then b:=formaddstring('лево');
 if 
keytoaction(getkeyclicked)=ga_right  then b:=formaddstring('право');
 if 
keytoaction(getkeyclicked)=ga_fire   then b:=formaddstring('огонь');
 if 
keytoaction(getkeyclicked)=ga_gamea  then b:=formaddstring('A');
 if 
keytoaction(getkeyclicked)=ga_gameb  then b:=formaddstring('B');
 if 
keytoaction(getkeyclicked)=ga_gamec  then b:=formaddstring('C');
 if 
keytoaction(getkeyclicked)=ga_gamed  then b:=formaddstring('D');
 
repaint;
 
delay(100);
 
clearform;
 
until bool;
 

end

у меня теперь еще и getkeyclicked и getkeypressed слепые . выдают ke_none , чтобы я ни делал с клавой . на эмуле и телефоне


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

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