Ru-Board.club
← Вернуться в раздел «Программы»

» Indigo Rose AutoPlay Media Studio

Автор: leonidz
Дата сообщения: 25.12.2013 09:34
ra700

Цитата:
Например, запустить файл 1.flv с помощью KMplayer.


Запуск файла untitled1.mp4 c помощью KMplayer


Код: result = File.Run("C:\\Program Files (x86)\\The KMPlayer\\KMPlayer.exe", "C:\\untitled1.mp4", "", SW_SHOWNORMAL, false);
Автор: ra700
Дата сообщения: 25.12.2013 12:03
leonidz, спасибо!
Путь к видео-файлу должен быть абсолютный?
Автор: Zloy_Gelud
Дата сообщения: 25.12.2013 12:33
ra700

Цитата:
Путь к видео-файлу должен быть абсолютный?

Да.
Вот еще пример кода.

Код: local sMoviePath = _SourceFolder.."\\Video\\Movie.flv"; -- путь к видео-файлу
local tPathsSplit = String.SplitPath(sMoviePath);
local sDefPlayer = File.GetDefaultViewer(tPathsSplit.Extension); -- ищем плеер по-умолчанию
if (sDefPlayer == "") then -- если нет ассоциированного с файлом плеера,
File.Run(_SourceFolder.."\\MPC-BE\\mpc-be.exe", sMoviePath, _SourceFolder.."\\MPC-BE", SW_SHOWNORMAL, false); -- запускаем наш портабельный плеер
else
File.Run(sDefPlayer, sMoviePath, "", SW_SHOWNORMAL, false); -- запуск ассоциированного плеера
end
Автор: ra700
Дата сообщения: 25.12.2013 14:16
Zloy_Gelud, ты как Дед Мороз, появляешься в самый нужный момент и даришь самый нужный подарок ))))
Спасибо!
Автор: Zloy_Gelud
Дата сообщения: 25.12.2013 14:29
ra700 -- ну приятно, что я чем-то полезен.


Пример реализации Drag'n'Drop в AMS: drag_and_drop_v0.4.lua
Автор: ra700
Дата сообщения: 27.12.2013 20:25

Цитата:
local sMoviePath = _SourceFolder.."\\Video\\Movie.flv"; -- путь к видео-файлу
local tPathsSplit = String.SplitPath(sMoviePath);
local sDefPlayer = File.GetDefaultViewer(tPathsSplit.Extension); -- ищем плеер по-умолчанию
if (sDefPlayer == "") then -- если нет ассоциированного с файлом плеера,
File.Run(_SourceFolder.."\\MPC-BE\\mpc-be.exe", sMoviePath, _SourceFolder.."\\MPC-BE", SW_SHOWNORMAL, false); -- запускаем наш портабельный плеер
else
File.Run(sDefPlayer, sMoviePath, "", SW_SHOWNORMAL, false); -- запуск ассоциированного плеера
end



Где-то на форуме был код проверки системы (х86/х64), искал-искал и не нашел.
В вышеуказанный код нужно добавить условие проверки разрядности системы для выбора нужного плеера.
Плееры лежат в папках x86\\mpc-be.exe и x64\\mpc-be64.exe.
Автор: KerberX
Дата сообщения: 27.12.2013 21:22
ra700, вот твоя проверка.


Код: local b64Bit = System.Is64BitOS();
if b64Bit == true then
    -- 64 бита (x64)
else
    -- 32 бита (x86)
end
Автор: tuz1979
Дата сообщения: 27.12.2013 21:22
Привет всем! как сделать чтоб при нажатии на кнопку меню сворачивалось в панель задач?
заранее большое спасибо!
Автор: ra700
Дата сообщения: 27.12.2013 22:11
KerberX, спасибо!!!
Автор: tuz1979
Дата сообщения: 27.12.2013 22:30
а на мой вопрос кто подскажет?
оч нужно.
Автор: leonidz
Дата сообщения: 27.12.2013 23:13
tuz1979

Код: Application.Minimize();
Автор: tuz1979
Дата сообщения: 27.12.2013 23:47
leonidz
Спасибо тебе большое!!!
Автор: ra700
Дата сообщения: 28.12.2013 00:04
Хм, что-то не играет...
Код

Цитата:
local sMoviePath = _SourceFolder.."\\Video\\Movie.flv";
File.Run("AutoPlay\\MPC-BE\\mpc-be.exe", sMoviePath, "AutoPlay\\MPC-BE", SW_MAXIMIZE, false);

Запускает плеер, но видео не загружается. Видео положил в папку Video\\Movie.flv, но файл не определяется.
Автор: Zloy_Gelud
Дата сообщения: 28.12.2013 09:22
ra700 -- проверил у себя на avi'шке - плеер запускается, видео воспроизводится.

PS.Попробуй у себя другой портабельный плеер.
Автор: ra700
Дата сообщения: 28.12.2013 19:56
Пробовал три разных плеера, все запускаются, но не находят файл. Не срабатывает код

Цитата:
local sMoviePath = _SourceFolder.."\\Video\\Movie.flv";

Все матюгаются на то что не могут найти файл, хотя и папка и название файла правильные.

Получилось проиграть так:

Цитата:
local sMoviePath = _SourceFolder.."\\AutoPlay\\Video\\Movie.flv";
File.Run("AutoPlay\\VLCPortable\\VLCPortable.exe", sMoviePath, "AutoPlay\\VLCPortable", SW_MAXIMIZE, false);


Спасибо за направления по курсу!!!

Добавлено:
Гипотетически предполагаю что никак, но все же задам вопрос: можно ли как-то сделать так, что при попытке открыть новое видео запущенный прежде плеер закрылся, а потом запускался заново и проигрывал новое видео?

Сейчас происходит следующее: запускаю первое видео - открывается плеер и начинает проигрывать видео1. По окончании видео плеер остается открытым. Когда запускаю видео2 программа матюгается на то, что запущенный до этого плеер надо закрыть.
Автор: Robby
Дата сообщения: 29.12.2013 10:49
ra700
Попробуй запусткать так:
File.Run("AutoPlay\\MPC-BE\\mpc-be.exe", "\""..sMoviePath.."\"", "AutoPlay\\MPC-BE", SW_MAXIMIZE, false);
или так
File.Run("AutoPlay\\MPC-BE\\mpc-be.exe".." \""..sMoviePath.."\"", "", "AutoPlay\\MPC-BE", SW_MAXIMIZE, false);


Цитата:
Гипотетически предполагаю что никак, но все же задам вопрос: можно ли как-то сделать так, что при попытке открыть новое видео запущенный прежде плеер закрылся, а потом запускался заново и проигрывал новое видео?

Первый вариант решения использовать плеер котоый ведет себя адекватно
Второй - убить процес с помощью команды Taskkill, а потом запускать новый файл
Третий - использовать функции System.EnumerateProcesses() и System.TerminateProcess (number ProcessID) из AMS для принудительного завершения процесса перед запуском нового видео.
Автор: ra700
Дата сообщения: 29.12.2013 11:10
Robby, спасибо, поэкспериментирую.
Автор: Robby
Дата сообщения: 29.12.2013 11:58
ra700
При передачи параметров через командную строку есть два подводных камня - это ограничение длины командной строки (разная в разных ОС) и пробелы в путях. Выводы которые из этого следуют: не использовать слишком длинные пути и все пути принудительно заключать в кавычки.
Проблема у тебя скорее всего с наличием пробелов в путях. Как происходит разбор комстроки в функции File.Run одному богу известно поэтому путь лучше передавать не а аргументах, а сразу за исполняемым файлом, как во втором способе. Как проверишь отпиши, работает или нет.
Автор: ra700
Дата сообщения: 29.12.2013 13:38

Цитата:
Проблема у тебя скорее всего с наличием пробелов в путях.

Да, этот момент я просек и устранил, переименовав папки.
Так как работает нормально, оставил так:

Цитата:
local sVideoPath=_SourceFolder..("\\AutoPlay\\Scripts\\emb\\3.flv");
local tPathsSplit = String.SplitPath(sVideoPath);
local sDefPlayer = File.GetDefaultViewer(tPathsSplit.Extension);
if (sDefPlayer == "") then
File.Run("AutoPlay\\VLCPortable\\VLCPortable.exe", sVideoPath, "AutoPlay\\VLCPortable", SW_MAXIMIZE, false);
else
File.Run(sDefPlayer, sVideoPath, "", SW_SHOWNORMAL, false);
end
Автор: tuz1979
Дата сообщения: 29.12.2013 23:34
Люди подскажите пожалуйста как вставить анимацию в формате gif?
Автор: leonidz
Дата сообщения: 30.12.2013 05:53
tuz1979

Плагин GIF
В свойствах страницы на Оn Show

Код: result = GIF.Load("Plugin1", _SourceFolder.."\\AutoPlay\\Images\\17tq34.gif");
Автор: tuz1979
Дата сообщения: 30.12.2013 15:52
leonidz
Спасибо за помощь, все получилось!
Автор: nikitorol
Дата сообщения: 03.01.2014 06:14
Всех с наступивним новым годом)
Ребятки, есть вопрос.
Как создать обычный чат (между пользователями?)
Варриант со скачкой и записи и отправки файла на сервер не предлагать.
Всю голову уже сломал...
Помогите пожалуйста...
Автор: dallas page
Дата сообщения: 04.01.2014 11:56
Всем привет, с новым годом. Подскажите пожалуйста, мне нужно скачать файл с сайта opendrive.com. Создал пользователя с возможность скачать файл. Через браузер все проходит нормально, а через ams качает только 7кб. Что может быть не так?

Код: tbUD = {};
tbUD.UserName = "test@ya.ru";
tbUD.Password = "Qazx123456";

HTTP.Download("http://www.opendrive.com/files/MF8zMDkxMjY3MV9LbGdkRV84NmRj/1-01%20Saltwater%20(Original%20Mix).m4a", "C:\\test\\1.m4a", MODE_BINARY, 20, 80, tbUD, nil, nil);
if (Application.GetLastError()~= 0) then
-- An Error Occurred
HTTP_Error = HTTP.GetHTTPErrorInfo();
Dialog.Message("HTTP error " .. HTTP_Error.Number, HTTP_Error.Message);
end
Автор: Zloy_Gelud
Дата сообщения: 04.01.2014 13:54
dallas page -- скорее всего сайт приватные раздачи отдает на основе кук. Нет кук - нет файла. Это, имхо, разумеется. Работать через API сайта надо.
Автор: dallas page
Дата сообщения: 04.01.2014 14:56
Zloy_Gelud понял, спасибо. Может есть идеи по поводу Input?!!
Автор: Zloy_Gelud
Дата сообщения: 04.01.2014 15:30
dallas page

Цитата:
Может есть идеи по поводу Input?!!

Если для ввода грузинских букв необходима поодержка юникод ( я не в курсе), то АМС не поддерживает его, только ANSI. Возможно просто не установлена поддержка грузинского языка..?

Кстати, рабочий код для скачивания приватного файла с сайта opendrive.com:

Код: -- Логин и пароль
local sUserName = 'username';
local sPasswd = 'login';

-- JSON для авторизации
local sJSON = '{"username": "' .. sUserName..'","passwd": "' .. sPasswd .. '","version": "1"}';

local WinHttp = luacom.CreateObject("WinHttp.WinHttpRequest.5.1");
if (WinHttp ~= nil) then
-- авторизация
WinHttp:Open("POST", 'https://dev.opendrive.com/api/v1/session/login.json', 0);
WinHttp:SetRequestHeader("Host", "www.dev.opendrive.com");
WinHttp:SetRequestHeader("Content-Type", "application/json; charset=UTF-8");
WinHttp:SetRequestHeader("Content-Length", String.Length(sJSON));
WinHttp:SetRequestHeader("X-Requested-With", "XMLHttpRequest");

WinHttp:Send(sJSON);

if (WinHttp.Status == 200) then
-- Если знаем ID файла, можем сразу качать его
HTTP.Download("http://www.opendrive.com/files/MF8zMDkxMjY3MV9LbGdkRV84NmRj/1-01%20Saltwater%20(Original%20Mix).m4a", "D:\\1.m4a", MODE_BINARY, 20, 80, nil, nil, nil);

local sResponse = WinHttp.ResponseText;
local sSessionID = sResponse:match('"SessionID":"(.-)"'); -- ID сессии (если нужно)
end

WinHttp = nil;
collectgarbage();
end
Автор: dallas page
Дата сообщения: 04.01.2014 16:00
Zloy_Gelud спасибо. Как альтернатива:

Код: HTTP.DownloadSecure("https://webdav.opendrive.com/Test/1-01%20Saltwater%20(Original%20Mix).m4a", "C:\\Test\\1.m4a", MODE_BINARY, 20, 443, {UserName="test@ya.ru", Password="Qazx123456"}, nil, nil);
Автор: Zloy_Gelud
Дата сообщения: 04.01.2014 16:07
dallas page

Цитата:
Как альтернатива

Согласен, через webdav тоже можно качать. Кстати, если не отображаются грузинские буквы, возмжно просто не установлена поддержка этого языка (языковой пакет)? По идее, если мы печатем русскими буквами и они отображаются, то также и с грузинским должно быть, если все в системе установлено.
Автор: dallas page
Дата сообщения: 04.01.2014 16:12
Zloy_Gelud посмотри пожалуйста предыдущее сообщение. +Грузинский установлен в системе Windows 8.1. Везде печатается. В блокноте только не сохраняет в кодировке ANSI, только Юникод и UTF-8. В AMS печатает вопросами. Может можно выставить для Input значение FontScript? Шрифт Verdana.

В принципе вопрос не принципиальный. Использую для этой программы. Просто хочу понять.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980

Предыдущая тема: память не может быть written


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.