Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
SongList и Video
IgorillaZzzДата: Четверг, 09 Ноября 2006, 15:38 | Сообщение # 1
Новый участник
Группа: Проверенные
Сообщений: 8
Репутация: 0
Награды: 0
Статус: Offline
Подскажите, плиз, как сделать, чтоб из плейлиста можно было двойным щелчком мыши начать проигрывать видеофайла? Смысл в том, что в плейлист загружаются все возможные видео и аудио расширения, а при условии, что ExtractExt(Item$) из листбокса = '.avi'(например), нужно, чтоб этот файл начал проигрываться...У меня всё нормально, кроме того, что после щелчков вместо проигрывания выскакивает окно OpenVideo. Лишь при выборе в нём файла начинается проигрывание surprised
Заранее всем ответившим спасибо...
 
as-masterДата: Четверг, 09 Ноября 2006, 19:16 | Сообщение # 2
Группа: Удаленные





Я бы сделал так. В кнопке "Загрузить видео" написал бы:

Code
BrowseForFolder("Укажите папку с фильмами","")
folder$=CBK_OpenDir
If (folder$ <> '') Then
  SearchForFiles("folder$","avi")
  If (CBK_NumInList>0) Then
   ListBoxAddItem("SongList","RESET")
   ListBoxAddItem("SongList","<List>")
   ListBoxGetItems("SongList","<List>")
   SongListReset()
   ListBoxGetItems("SongList","<List>")
   ListBoxSelectItem("SongList","1")
  End
End

А в скрипте плейлиста (в нём нужно выбрать скрипт по Double Click) написал бы

следующее:

Code
ListBoxGetSelectedItems("SongList","Items$,ItemsNum$,#,NumItems")
For i=1 To NumItems
  v$ = GetArrayItem(Items$,#,i)
  VideoLoad("Video","v$")
  VideoPlay("Video")
Next i

Разумеется, еще нужно запустить сценарий, который бы изменил размеры видео под

размеры окна, но об этом ты не спрашивал smile
А остальное работает как часы :)

 
IgorillaZzzДата: Четверг, 09 Ноября 2006, 22:47 | Сообщение # 3
Новый участник
Группа: Проверенные
Сообщений: 8
Репутация: 0
Награды: 0
Статус: Offline
А я так и сделаю))) Cпасибо огромное, as-master!
Слушайте, а у меня почти так и было:

Code

ListBoxGetSelectedItems("SongList","Items$,ItemsNum$,#,NumItems")
For i=1 To NumItems
v$ = GetArrayItem(Items$,#,i)
EE$=ExtractExt(Items$)
If (EE$='.mp3#') Then
  AudioPlay()
End
If (EE$='.avi#') Then
  VideoLoad("VideoScreen","v$")
  VideoPlay("VideoScreen")
End
Next i

...но...так не работало!
а так работает:

Code

ListBoxGetSelectedItems("SongList","Items$,ItemsNum$,#,NumItems")
EE$=ExtractExt(Items$)
If (EE$='.mp3#') Then
  AudioPlay()
End
If (EE$='.avi#') Then
For i=1 To NumItems
v$ = GetArrayItem(Items$,#,i)
  VideoLoad("VideoScreen","v$")
  VideoPlay("VideoScreen")
Next i
End

surprised ??? Why???

и ещё, про размеры окна вы хорошо подметили smile Я-то думал это легко, вот и не спрашивал, а когда добрался до них - apple , чё т не получается сделать так, чтоб любое открываемое видео подгонялось под окно с неизменными размерами (331;301). Посмотрел проект Desktop Panel, сделал всё по образу и подобию(но со своими размерами) - какие-то видео правильно открываются, какие-то нет...короче, если не трудно, плиз wink

 
as-masterДата: Пятница, 10 Ноября 2006, 00:09 | Сообщение # 4
Группа: Удаленные





Quote (IgorillaZzz)
про размеры окна вы хорошо подметили Я-то думал это легко, вот и не спрашивал, а когда добрался до них - , чёт не получается сделать так, чтоб любое открываемое видео подгонялось под окно с неизменными размерами (331;301).

Нельзя подгонять видео под окно с неизменными размерами!!! Ибо одно видео - широкоэкранное, другое - нет. И будут сильные искажения изображения.

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

Навскидку могу предложить такой вариант. В скрипте плейлиста добавляешь строку RunScript("ResizeVideo"). Затем создаешь этот скрипт ResizeVideo, в котором пишешь следующее:

Code
H=ObjectHeight(Video)
W=ObjectWidth(Video)
HW=H/W
If (W>H) Then
  W=300
  H=W*HW
  VideoScale("Video","W,H")
  MoveObject("Video","10,10")
End
If (H>220) Then
  H=220
  W=H/HW
  VideoScale("Video","W,H")
  MoveObject("Video","10,10")
End

Здесь цифры 300 и 220 - это размеры моего видеоокна (у тебя свои).
А цифры 10 и 10 в команде MoveObject() - это координаты верхнего левого угла объекта Video в проекте.
Что не так - скорректируешь сам. Но вообще-то уже и так работает :)

 
  • Страница 1 из 1
  • 1
Поиск: