SongList и Video
|
|
IgorillaZzz | Дата: Четверг, 09 Ноября 2006, 15:38 | Сообщение # 1 |
Новый участник
Группа: Проверенные
Сообщений: 8
Репутация: 0
Награды: 0
Статус: Offline
| Подскажите, плиз, как сделать, чтоб из плейлиста можно было двойным щелчком мыши начать проигрывать видеофайла? Смысл в том, что в плейлист загружаются все возможные видео и аудио расширения, а при условии, что ExtractExt(Item$) из листбокса = '.avi'(например), нужно, чтоб этот файл начал проигрываться...У меня всё нормально, кроме того, что после щелчков вместо проигрывания выскакивает окно OpenVideo. Лишь при выборе в нём файла начинается проигрывание Заранее всем ответившим спасибо...
|
|
| |
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 | Разумеется, еще нужно запустить сценарий, который бы изменил размеры видео под размеры окна, но об этом ты не спрашивал А остальное работает как часы :)
|
|
| |
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 | ??? Why??? и ещё, про размеры окна вы хорошо подметили Я-то думал это легко, вот и не спрашивал, а когда добрался до них - , чё т не получается сделать так, чтоб любое открываемое видео подгонялось под окно с неизменными размерами (331;301). Посмотрел проект Desktop Panel, сделал всё по образу и подобию(но со своими размерами) - какие-то видео правильно открываются, какие-то нет...короче, если не трудно, плиз
|
|
| |
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 в проекте. Что не так - скорректируешь сам. Но вообще-то уже и так работает :)
|
|
| |