Показать сообщение отдельно
Старый 25.10.2008, 06:46   #24
Cliffe Snake
Нуждающийся
 
Аватар для Cliffe Snake
 
Регистрация: 22.09.2008
Сообщений: 74
Написано 8 полезных сообщений
(для 12 пользователей)
Ответ: Lib_videocnv: воспроизведение видео в режиме Canvas!

Сообщение от m1kc. Посмотреть сообщение
Все нормально воспроизводится, но после окончания видео я вижу только черный экран с первым кадром посередине, а по идее прога должна выполняться дальше.
Функция get_duration возвращает значение в 1000 раз больше чем нужно.
т.е. Duration:=(get_duration/1000);
для продолжения работы после close_player нужно вызвать ShowCanvas;
При проигрывании видео, функции отрисовки не работают(Что неплохо было бы исправить )
Вот пример юзанья:
program Video;
uses videocnv,jsr75i;
var
 
KP:integer;
 
v:integer;
 
sw,sh,time:integer;
begin
sw
:=getwidthsh:=getheight;
Setcolor(0,0,0);
fillrect(0,0,sw,sh);
setcolor(0,255,0);
repaint;
delay(2000);
/////////////////////
// Открываем плеер //
/////////////////////
 
init_display(1);//Инициализируем дисплей
 
load('fs/media/tagik.3gp');//Загружаем видео
 
set_location((sw-get_src_width)/2,0);
 
videocnv.set_size(swsw/4*3);//У меня ваще не меняется видео, как ни меняй эти параметры
 
set_visible(1);//Отображение дисплея
 
time:=GetRelativeTimeMs//записываем время начала воспроизведения
  
start;//Запуск воспроизведения
  
v:=20;
    
repeat 
     kp
:=getkeypressed;
     if 
kp=ke_star then stop;//Остановка
     
if kp=ke_pound then start;//Запуск
     
if kp=ke_key3 then
     begin
      v
:=v+5;
      
set_volume(v);//Увеличиваем громкость
     
end;
      if 
kp=ke_key1 then
     begin
      v
:=v-5;
      
set_volume(v);//уменьшаем громкость
     
end;
     
delay(100);// если задержку убираю, видео начинает тормозить, а с delay(100); всё супер!
    
until (((GetRelativeTimeMs Time) > (get_duration/1000)); //Ждём пока видео проигрывается
    
stop;//Остановка
    
close_player;//Закрываем плеер и вызываем showcanvas
showcanvas;
setcolor(0,0,255);
fillrect(0,0,sw,sh);
repaint;
delay(10000);
end
(Offline)
 
Ответить с цитированием