忍者ブログ
MASTER →  ADMIN / NEW ENTRY / COMMENT
モバイル、スマートフォン関連情報のニュース、アプリケーション、自作スクリプトなどの備忘録
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
プロフィール
HN:
ふぁんとむ
性別:
男性
趣味:
電車の中でモバイル通信
ブログ内検索
バーコード
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

想定運用フォルダ構造

Music
 │ ALLSONGS.m3u(全曲プレイリストファイル)
 │
 +--ジャンル1
 │   │ ジャンル1.m3u(ジャンル別ファイルリスト)   
 │   │
 │   +--アルバム1
 │   │   +--曲1.mp3
 │   │   +--曲2.mp3
 │   │   +--曲3.mp3
 │   │
 │   +--アルバム2
 │   +--アルバム3
 +--ジャンル2
 +--ジャンル3

この前提で、「ジャンル」のフォルダをプレイリスト作成対象フォルダとして選択すると、そのジャンルの中にあるアルバムフォルダ中のMp3ファイルをプレイリスト化し、ジャンルフォルダ直下にm3uファイルとして作成(ファイル名はジャンルと同じ名前)。
さらに、Musicフォルダには各ジャンルフォルダ直下にあるm3uファイルから全曲プレイリストをが作成されます。

で、全曲リストは作成にちょっと時間がかかるので、先に作成指示したジャンル別プレイリストでGSPlayerを起動するようにしてます。
なお、起動後にはプレイリストをフルパスでソートして、一曲目から再生開始するようにしています。ただ、一曲目の指定をマウスクリックで行っているので、機種やスキンによって調整が必要になるでしょう。

###########################################
##プレイリスト作成ディレクトリ指定(直接書換のこと)
Dir_OYA = "\メモリ カード\music"

########################################
##個別プレイリスト作成

##ディレクトリ指定
Dir_music=SelectDirectory("Select Music Folder",MESS,Dir_OYA)

##プレイリストファイル作成
m3u_name= Dir_music \ Part(Dir_music,"\",-1) & ".m3u"

if (FileExists(m3u_name) = true)
DELETE(m3u_name)
ENDIF

##ディレクトリ読取
i=0
ForEach Dir_work in directories(Dir_music & "\*")
i=i+1
dir_name[i]=Dir_work & "\*"
EndForEach

##ファイル読取、リスト作成
ForEach File_work in files(Dir_music & "\*.mp3")
File_work=Replace(File_work,Dir_music & "\","")
WriteFile(m3u_name,File_work & "^NL^",True)"
EndForEach

For j=1 to i
ForEach File_work in files(dir_name[j] & ".mp3")
File_work=Replace(File_work,Dir_music,"")
WriteFile(m3u_name,File_work & "^NL^",True)"
EndForEach
next

##GSPlayerK起動
run(m3u_name)
sleep(200)

##リストをソートして、一曲目から再生
SendCommand("GSPlayerK", 40035)
sleep(300)
MouseDblClick("GSPlayerK",50,75)


############################
##全曲リスト作成
ALLSONGS =Dir_OYA \ "ALLSONGS"

##旧リスト削除
DELETE(ALLSONGS & ".m3u")

##親ディレクトリのひとつ下のフォルダを配列格納
i=0
ForEach Dir_work in directories(Dir_OYA & "\*")
i=i+1
dir_name[i]=Dir_work & "\*"
EndForEach

##ファイル内容読取、リスト作成
ForEach File_work in files(Dir_OYA & "\*.m3u")
Line_Work=ReadLine(File_work)
While(Not IsEmpty(Line_work))
If(SubStr(Line_Work,1,1) ne "#")
WriteFile(ALLSONGS & ".txt",Line_work & "^NL^",True)"
endif
Line_Work=ReadLine(File_work)
EndWhile
EndForEach

For j=1 to i
ForEach File_work in files(dir_name[j] & ".m3u")
Line_Work=ReadLine(File_work)
While(Not IsEmpty(Line_work))
If(SubStr(Line_Work,1,1) ne "#")
WriteFile(ALLSONGS & ".txt","\" & Part(Dir_name[j],"\",-2) \ Line_work & "^NL^",True)"
endif
Line_Work=ReadLine(File_work)
EndWhile
EndForEach
next j

##全曲リスト完成
Rename(ALLSONGS & ".txt",ALLSONGS & ".m3u")

PR
≪  7  6  5  4  3  2  1  ≫
HOME
Comment
この記事にコメントする
お名前:
URL:
メール:
文字色:  
タイトル:
コメント:
パス:
Trackback
この記事にトラックバックする:
≪  7  6  5  4  3  2  1  ≫
HOME
忍者ブログ [PR]