Warning: count(): Parameter must be an array or an object that implements Countable in /home/asaki/www/wordpress/wp-includes/post-template.php on line 275

Warning: count(): Parameter must be an array or an object that implements Countable in /home/asaki/www/wordpress/wp-includes/post-template.php on line 275

Warning: count(): Parameter must be an array or an object that implements Countable in /home/asaki/www/wordpress/wp-includes/post-template.php on line 275

Warning: count(): Parameter must be an array or an object that implements Countable in /home/asaki/www/wordpress/wp-includes/post-template.php on line 275

Warning: count(): Parameter must be an array or an object that implements Countable in /home/asaki/www/wordpress/wp-includes/post-template.php on line 275
10月 222004
 

なんとなく、JUKのパッチを更新した。
I18N向けに設定可能にし、utf8との比較も行えるように変更した。
パッチはこれ: kdemultimedia-juk-mp3-id3tag-codec-20041022.patch
なお、そこまでするのが面倒だったので設定UIはありません。(というか、JUKにもともと設定用dialogがない。TagEditorを流用する手もあるが、まあ、いらないだろうと)
解説、使い方については追記に。


使い方
1. パッチを当ててjukを作り直す。
2. パッチを当てたjukを起動してすぐ終了。
3. ~/.kde/share/config/jukrcを任意のエディタで開く
4. [TagConfig]と書かれた行の下に設定項目が並んでいるので適当に編集。
* useCodec: このパッチの機能を有効にするかどうか。 falseをtrueに書き換えると文字コード変換機能が有効に。
* codecName: 使用するエンコーディング名。eucJPになってると思うのでsjisへ変更。
* checkUtf8: ID3Tagを読み込む場合にcodecNameで指定したエンコーディングかutf8かを調べる場合にはtrueへ変更。sjisとutf8のmp3が混在している場合に使用。ただし、QTextCodec::heuristicContetntMatch()を使用しているため認識精度は低い。sjisしかないのならばfalseのままのほうが安全。
5. jukを立ち上げなおす。
解説というか、注意点
KDE_3_3_BRANCH用パッチ。3.2であたるかは未確認。
手持ちのMP3(sjis, 2file)とOgg(UTF8)で動作することを確認済み。
なお、上記の機能はMP3にしか適用されません。また、ID3v1, ID3v2の双方に対して動作します。
保存時はcodecNameで指定したエンコードを使用します。
utf8との比較機能は実験機能として考えてください。認識精度ははっきり言って低いです。ただし、ID3v1-tagとID3v2-tagとの比較(同じ文字列であればUTF8ではない可能性が高いと考えられる)やすべてのエントリーでの比較など、総合的に判定するルーチンへ変更したり、QTextCodec::heuristicContentMatch()ではなく、他の認識ルーチンを持ってくることでましなものにすることは出来るでしょう。
あとはutf8で保存する機能などを作るのも手かな。その場合はID3v1とID3v2とでエンコーディングを変更することも考慮したほうがいいでしょうが。
とりあえず、私が積極的に手を加えるのはここまでの予定。バグや要望等があればコメントかメールでもしてください。なお、checkUtf8使用時の誤認識については誤認識された文字列を添えて報告があれば対処可能か検討してみます(が、期待はしないように)。
って、風邪で会社休んだっていうのに、なにやってんだか。


Warning: count(): Parameter must be an array or an object that implements Countable in /home/asaki/www/wordpress/wp-includes/class-wp-comment-query.php on line 405

コメントを残す