Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Создание плейлиста без плеера (http://forum.oszone.net/showthread.php?t=254839)

DoubleDragon 24-02-2013 21:07 2098122

Создание плейлиста без плеера
 
Вложений: 2
Здравствуйте. Помогите вот в каком вопросе:
В программировании и языковедении не силен, но у меня сработало с файлами из mp3
Берете файл из архива (выбираете для MP3, WAV или FLAC) и копируете его в папку с треками (сразу в плеер). Там запускаете, и у вас через пару секунд появляется файл Playlist.m3u,
который вы переименовываете как нравится. Это получается нескольк обыстрее чем создавать плейлист непосредственно через WinAMP или AIMP Всю инфу стянул из
Википедии
Кто может помочь
1) чтобы еще Playlist переименовывался в хотя бы название папки, будет вообще супер
___
Но вот беда. то что проделано выше, работает только на компьютере, Т.е. если я кликаю по плейлисту, все играется. Но если я эту папку переливаю в аудиоплеер, то плейлист пустой.
Я прилепил разные типы плелистов. Вот одни играются на плеере, а остальные нет. Можно ли как-то "модифицировать" bat чтобы получались типы плейлиста, которые работают?

Iska 24-02-2013 22:08 2098175

Код:

@echo off
setlocal enableextensions enabledelayedexpansion
set sPath=%~dp0
call :GetLastPartOfPath "%sPath:~0,-1%"
1>nul chcp 1251
1>"%LastPartOfPath%.m3u" 2>nul dir /o:n /b *.wav *.flac *.mp3
1>nul chcp 866

endlocal
exit /b 0

:GetLastPartOfPath
        setlocal enableextensions enabledelayedexpansion
        set sOut=%~0
       
        endlocal & set %sOut:~4%=%~nx1
        exit /b


DoubleDragon 24-02-2013 22:30 2098195

Ух. Здорово. Я получаю список файлов (ну если открыть блокнотом). Но вот незадача. Если я это дело переношу на плеер, то не работает. А работают плейлисты, которые выглядят так:
Цитата:

#EXTM3U
#EXTINF:335,Brian Tyler - Far Cry 3
01 Far Cry 3.flac
#EXTINF:213,Brian Tyler - Heat
02 -//-//-//-///-
и так далее
Где 335 - длительность трека. Можете как-нибудь переделать? Или если 335 (в секундах) везде заменить на "-1" - без кавычек. Такое также допускается для "радио"
http://ru.wikipedia.org/wiki/M3U

Iska 24-02-2013 23:35 2098247

DoubleDragon, если Вы просто запишете ручками «#EXTM3U» первой строкой полученного файла — он заработает на плеере?

DoubleDragon 25-02-2013 00:02 2098261

Нет не заработал. И вообще, все плейлисты c FLAC, даже которые я делал программой AIMP - вешают мою железку. А вот с MP3 - шными файлами все ОК. Но только теми, которые делаются из AIMP (даже если в них пути к песням прописаны)
Хотелось бы чтобы в текстовом варианте плейлист имел бы такой вид. Для примера:
Цитата:

#EXTM3U
#EXTINF:277,Sting - If You Love Somebody
01 - Sting - Live In Central Park ( Disc 1 ) - If You Love Somebody.mp3
#EXTINF:416,Sting - After The Rain - We'll Be Together
02 - Sting - Live In Central Park ( Disc 1 ) - After The Rain - We'll Be Together.mp3
т.е. без путей
Причем я пробовал заменить длительность (это 277 и 416) на "-1" - все работает.

Iska 25-02-2013 00:47 2098286

Цитата:

Цитата DoubleDragon
Хотелось бы чтобы в текстовом варианте плейлист имел бы такой вид. »

В пакетном файле?! Тэги %artist% - %title% где предлагаете брать?
Код:

@echo off
setlocal enableextensions enabledelayedexpansion
set sPath=%~dp0
call :GetLastPartOfPath "%sPath:~0,-1%"
1>nul chcp 1251
>"%LastPartOfPath%.m3u" (
        echo #EXTM3U
        for /f "usebackq delims=" %%i in (`dir /o:n /b *.wav *.flac *.mp3 2^>nul`) do (
                echo #EXTINF:-1,
                echo %%~i
        )
)
1>nul chcp 866

endlocal
exit /b 0

:GetLastPartOfPath
        setlocal enableextensions enabledelayedexpansion
        set sOut=%~0
       
        endlocal & set %sOut:~4%=%~nx1
        exit /b


DoubleDragon 25-02-2013 20:54 2098812

Отлично. Все заработало.
Вы гений, а для меня это какая-то абракадабра. Спасибо еще раз.
--
Если Вам не сложно, напишите еще вот такой "генратор"
Есть папка. Напрмер СТИНГ. Внутри есть папки с альбомами, например CD1 CD2 .... CD5
Есть возможность создать такой BAT-ник, чтобы при запусуке его из папки СТИНГ, пойвлялся плейлист в апапке СТИНГ, но чтобы там были треки со всех подпапок (а еще лучше и вглубину чтобы подпапки читались на несколько уровней.) Или это нереализумо, т.к. путей нет в плейлисте?
p.s. я сейчас на форуме АИМпа интресуюсь насчет путей. В любом спасибо за труд. Как Вас отблагодарить?

Iska 25-02-2013 22:37 2098879

Цитата:

Цитата DoubleDragon
Вы гений, а для меня это какая-то абракадабра. »

Отнюдь. Вы неправы в обеих частях утверждения. Не боги горшки обжигают.


Цитата:

Цитата DoubleDragon
напишите еще вот такой "генратор" »

Попробуйте так:
читать дальше »
Код:

@echo off
setlocal enableextensions enabledelayedexpansion
set sPath=%~dp0
call :GetLastPartOfPath "%sPath:~0,-1%"

1>nul chcp 1251
>"%LastPartOfPath%.m3u" (
        echo #EXTM3U
        for /f "usebackq delims=" %%i in (`dir /s /o:n /b *.wav *.flac *.mp3 2^>nul`) do (
                echo #EXTINF:-1,
                set sFullPath=%%~i
                echo !sFullPath:%sPath%=!
        )
)
1>nul chcp 866

endlocal
exit /b 0

:GetLastPartOfPath
        setlocal enableextensions enabledelayedexpansion
        set sOut=%~0
       
        endlocal & set %sOut:~4%=%~nx1
        exit /b



Цитата:

Цитата DoubleDragon
Как Вас отблагодарить? »

Судят старого цыгана…
читать дальше »
Дают ему последнее слово. Он и говорит:

— Просит прокурор пятнадцать — дайте ему пятнадцать, просит защитник пять — дайте ему пять, обещает судья десять — дайте ему десять. А мне ничего не надо, я не жадный…


Спросите у Администрации, может им чего сгодится.

DoubleDragon 25-02-2013 22:54 2098885

Ок.

Алексей_Игоревич@vk 10-09-2013 19:52 2215792

Здравствуйте, скажите а как в этом коде, добавить функцию подстановки пути

@echo off
setlocal enableextensions enabledelayedexpansion
set sPath=%~dp0
call :GetLastPartOfPath "%sPath:~0,-1%"
1>nul chcp 1251
>"%LastPartOfPath%.m3u" (
echo #EXTM3U
for /f "usebackq delims=" %%i in (`dir /o:n /b *.wav *.flac *.mp3 2^>nul`) do (
echo #EXTINF:-1,
echo %%~i
)
)
1>nul chcp 866

endlocal
exit /b 0

:GetLastPartOfPath
setlocal enableextensions enabledelayedexpansion
set sOut=%~0

endlocal & set %sOut:~4%=%~nx1
exit /b

получается вот такой список:
multi\images\muzic\0010_Vlada_Moskovskaia\1991_-_Vlada_Moscowskaya\Kak_legko_togda_nam_pelos_.mp3
#EXTINF:-1,
multi\images\muzic\0010_Vlada_Moskovskaia\1991_-_Vlada_Moscowskaya\Ne_nado_slov.mp3
а мне нужно еще подставить адрес: http://fierycity.ru/
реально ли это


Время: 16:30.

Время: 16:30.
© OSzone.net 2001-