Нужен скрипт
Модератор: immortal
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Нужен скрипт
Нужен скрипт, который проигрывает 1 файл из заданной папки, при следующем вызове — 2-й и т. д. по порядку. Так удобно прослушивать (например раз в час или раз в полчаса или раз в день или по событиям) _по частям_ книги, сказки, обучающие программы или музыку. Что то вроде радиовещания получается.
Думается труд, затраченный на создание такого скрипта, окупится сторицей.
Думается труд, затраченный на создание такого скрипта, окупится сторицей.
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Нужен скрипт
Alex писал(а):Нужен скрипт, который проигрывает 1 файл из заданной папки, при следующем вызове — 2-й и т. д. по порядку. Так удобно прослушивать (например раз в час или раз в полчаса или раз в день или по событиям) _по частям_ книги, сказки, обучающие программы или музыку. Что то вроде радиовещания получается.
Думается труд, затраченный на создание такого скрипта, окупится сторицей.
Код ниже. Написал навскидку -- возможности проверить прямо сейчас нету. Но должен работать

Код: Выделить всё
$folder='\\\\home\\media\\folder1'; // путь к папке, откуда последовательно надо брать файлы (заменяем на свой)
$alreadyPlayed=gg("AlreadyPlayedFiles"); // берём список уже проигранных файлов из переменной ThisComputer.AlreadyPlayedFiles (если что, можно вручную очистить через модуль Классы объектов)
if (!$alreadyPlayed) {
$alreadyPlayed='0';
}
$tmp=explode('|',$alreadyPlayed);
$total=count($tmp);
for($i=0;$i<$total;$i++) {
$seen[$tmp[$i]]=1;
}
$path='';
@$d=openDir($folder);
$files=array();
// читаем файлы в папке
if ($d) {
while ($file=readDir($d)) {
if (($file==".") || ($file=="..") || ($file=="Descript.ion")) {
continue;
}
$files[]=$file;
}
}
// сортируем по имени
function sort_files($a, $b) {
return strcmp(strtoupper($a), strtoupper($b));
}
usort($files, 'sort_files');
// выбираем файл на проигрывание
$total=count($files);
for($i=0;$i<$total;$i++) {
$file=$files[$i];
if ($path) {
continue;
}
if (!$seen[$file]) {
$alreadyPlayed.='|'.$file;
$path=$folder.'\\'.$file;
}
}
// проигрываем файл
if ($path) {
playMedia($path);
sg("AlreadyPlayedFiles",$alreadyPlayed);
} else {
sg("AlreadyPlayedFiles",''); // если всё уже проиграно, то очищаем историю
}
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Нужен скрипт
Почти всё работает. Файлы попадают в проигрыватель, прослушанные попадают в свойство. Но проигрывание автоматически не включается, нужно нажать на знак PAUSE на проигрывателе и тогда проигрывается нужный файл.
Если просто вызвать playMedia, то всё работает правильно, т. е. воспроизведение вклюсается сразу, без нажатия на PAUSE.
Если просто вызвать playMedia, то всё работает правильно, т. е. воспроизведение вклюсается сразу, без нажатия на PAUSE.
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Нужен скрипт
А какой плэер используется?Alex писал(а):Почти всё работает. Файлы попадают в проигрыватель, прослушанные попадают в свойство. Но проигрывание автоматически не включается, нужно нажать на знак PAUSE на проигрывателе и тогда проигрывается нужный файл.
Если просто вызвать playMedia, то всё работает правильно, т. е. воспроизведение вклюсается сразу, без нажатия на PAUSE.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Нужен скрипт
Используется foobar. Почему то отдельно вызываемый playMedia работает правильно а playMedia в этом скрипте сразу не воспроизводит файл.
Последний раз редактировалось Alex Ср ноя 14, 2012 3:19 pm, всего редактировалось 1 раз.
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Нужен скрипт
Заметил такую штуку. playMedia
"\\COMPUTER\Folder\Folder\file.mp3” - не играет
“DISK:\Folder\Folder\file.mp3” - играет
Как правильно задавать пути? И почему не играет первый вариант?
"\\COMPUTER\Folder\Folder\file.mp3” - не играет
“DISK:\Folder\Folder\file.mp3” - играет
Как правильно задавать пути? И почему не играет первый вариант?
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Нужен скрипт
Возможно дело в том, что надо дублировать знак "\", а если нужно \\ то вообще использовать \\\\
Это особенности php.
По поводу проигрывания -- и там и там playmedia должен по идее отрабатывать одинаково, это ж одна функция. С foobar я не работал вплотную, т.к. сам пользуюсь VLC. Но попробую поставить Foobar дома, посмотреть в чём может быть дело.
Это особенности php.
По поводу проигрывания -- и там и там playmedia должен по идее отрабатывать одинаково, это ж одна функция. С foobar я не работал вплотную, т.к. сам пользуюсь VLC. Но попробую поставить Foobar дома, посмотреть в чём может быть дело.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Нужен скрипт
Удвоение не помогло.
playMedia играет потому, что путь там указан в формате disk:\....
А в скрипте используется формат \\\\computer\\... с которым проблемы. С другой стороны файлы правильно попадают в foobar, только не играют без ручного нажатия кнопки PAUSE.
playMedia играет потому, что путь там указан в формате disk:\....
А в скрипте используется формат \\\\computer\\... с которым проблемы. С другой стороны файлы правильно попадают в foobar, только не играют без ручного нажатия кнопки PAUSE.
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Нужен скрипт
Может это особенность foobar при проигрывании файла по сети?
В скрипте можно тоже использоваться путь с диском -- это я для примера сетевой путь указал.
В скрипте можно тоже использоваться путь с диском -- это я для примера сетевой путь указал.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги