Сообщение от 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:=getwidth; sh:=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(sw, sw/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.