曲管理にSongbirdを導入した。
予想以上によくできている。若干バギーだがまあプレイリスト編集して
BGMで流すぐらいなら全然問題ない。
ライブラリからポータブルプレイヤーにシャッフルで流し込みたいな。
APIもあるようだけど、sqliteらしいからデータベースを
直に見ちゃえばいいか。
楽曲の実体リストを取ってきてシャッフルしてコピーするだけ。えいっ、でっちあげ。USB転送が遅いのでこちらを参考にブロックサイズ変更。
require 'sqlite3'
require 'FileUtils'
require 'uri'
require 'kconv'
DATABASE_LOCATION='C:\Docume~1\ほげほげ\Applic~1\
Songbird1\Profiles\ほげほげ\db\main@library.songbirdnest.com.db'
DEST='F:/USBデバイスの場所'
#ブロックサイズ指定
module FileUtils
module StreamUtils_
def fu_default_blksize
1024 * 1024
end
end
end
#フォルダ全消去
begin
FileUtils.remove_entry(DEST)
rescue #強引だなあ...。
end
FileUtils.mkdir(DEST)
#データベースから曲名抜き出し
db = SQLite3::Database.new(DATABASE_LOCATION)
songs=db.execute('select content_url from media_items where media_list_type_id is NULL')
#ソートして順次コピー
songs.sort_by{rand}.each do |x|
src=URI.unescape(x[0].sub(/file\:\/\/\//,"")).tosjis
puts src
begin
FileUtils.cp(src,DEST)
rescue #いっぱいになったらエラーくるでしょ?(強引だ...)
break
end
end
iTunesやったらあかんのん?
手元の曲にwmaが結構な割合で混じってまして。iTunesだとAACに変換しないといけないんじゃなかったでしたっけ。