さて、コレまでに幾つか作ってきた、あたし謹製?のアプリに新しく加わる物が出来ました。
それがmp3プレイヤーです。
まぁ、wmaとかも再生したいのですが、今のところは贅沢しないつもりです。
まず、いちばんの問題はWMPが”使えない”からです。
コレは、動かないとか、エラーが出るとかって意味です(笑
以前にも何処かに書きましたが、あたしの持っているアルバムは数千、曲数で言うと数万。
コレを保持し、問題なく再生してくれるアプリにこれまで会ったことがありません。
確かに、多いですが?
業界で言うCDの売上げが下がっているとかって言うのとは、あたしは無縁なのです。
あれらのえらいオッサン達は、CDが売れないのはMP3プレイヤーの所為だという(当時)
でも、あたしの持っているメディアの枚数、曲数、そういうのを考えてください。
CDに入っているのは良い音質なのかも知れませんが、とてもでは有りませんが、聴きたい曲を選んで聞くと言うことは不可能です。
あたしの持っているメディア(DVDなども含む)は全部まとめておけば部屋の半分を占めます。
どうやって目的のアルバムを探すのでしょうか?
さて、それから、月日は流れました。
音楽プレイやーがmp3などの電子媒体へ本格的に変更され、mp3ファイルを持っていても、捕まえられてしまう人は居なくなりました。
さて、それならそれで、ミュージックプレイヤーとして何があるのでしょうか??
appleのituneも含めて、あたしの持っている曲を全部登録して、落ちなかったアプリは何一つありません。
もちろん、落ちないだけでなく、あたしが頑張って入力していたTag情報を正確に読み出し表示出来るものとなると、更に少ないです。
また、登録された一部のファイルを再生するだけでも、プレイリストを作るのが大変なものや、ジャンルやアーティストによる絞込などが正確に出来る物がありません。
これは、タグ情報を正常に読み込まないことにも問題が有ります。
もしかしたら、初めは読んでいたのかも知れないのですが・・・実際に選択したり再生したりとかって段階になると正常に処理されていないのです。
こうなると、もう自分で作るしか有りません。
基本的には、仕事中に流しっぱなしにするので、とことん軽量で使いやすいこと。
ソートやフィルタリングなどが多彩に出来ること。
プレイリストを沢山登録出来るほか、臨時にいつでも気軽に作れて、更新や、新規登録が出来ること。
検索やソートを早くするためには、DBを利用する必要があります。
まぁ、一般的にはAccess以外の選択肢はありませんよね。
ちょっと遅いのがネックですが、その辺はあきらめましょう。
また、IDタグを参照するので、これを読み込むための機能が必要です。
なので、簡単にする方法として、ググってすぐに見付かったコレを利用することにしました。
ID3LibとMp3Libです。
これは、csid3lib-v0.6-src.zipとして配布されている物で、それぞれのプロジェクトを自分が作っているアプリの中にチョイっと入れてあげればOKです。
まぁ、初めはコレで、D&Dしたファイルのタグを抜き出して、リストに表示するという感じのを作ったのですが、いくつかのファイルで読み取り中にエラーが出る。
調べた結果URL情報タグの処理に失敗している。
幾つか直しもしたのですが・・・・
そのうち、UTF16のデータなのに、文字化けが大量に発生することが判りました。
まぁ、英語圏の人はこれでもいいのかも知れませんが?日本人としては話になりません。
もう、使っていられない。
そのついでに、再生用に利用を始めたBass24のライブラリの方でも、タグの表示が出来ることが判ったので、コレを利用してみたのですが・・・・
文字列のタグを、タグIDと共に取り出してくれるだけなので、タグの処理その物は必要で有る事が分かったし、ID3Libの方で出来ていた画像データの取り出しが出来ないことが判りました。
やはり、タグはタグとして、正確に処理するしか有りません。
Bass24の方で、タグの座標を取り出す機能がありましたので、それで、タグサイズを測り、タグ全体をByte配列として取り出し、タグの読み込みに対応することにしました。
そして・・・そこまで来て・・・・なんとmp3ファイルのビットレートが判らない(笑
別に再生するだけなら登録しなくてもいい情報ではありますが、ビットレートの低いデータをCDから取り込み直して更新している最中なので、値の低いのだけを抽出する機能が欲しい。
しかし、只これだけの機能のためにId3LibやらMp3Libを使うのはイヤ(笑
結局Mp3の型式も調べて、ビットレートの情報だけ抜き出すことにしました。
こうして、mp3の情報も、IDTagもどちらも自力で読み込み機能を作ってしまいました(笑
なので、再生に使うBass24のライブラリと、c#で開発しやすくするためのBASE24.NETのライブラリを使わせて貰うことになりました。
因みに、タグの読み込み速度は、Id3LibとMp3Libを併用したときに比べ異常に早くなりました(笑
今は未だ、DBの方が設計中なので、聴きたい曲をその度にフォルダからドラッグ&ドロップして再生しているんですが・・・・それでも、WMPよりはマシな感じです。
なぜって?? 1ファイル再生するだけで、同じフォルダの中身をガンガンに書き換えられてしまうからです。
たしかにね?色々な機能があって便利ではあるんですよ?
でも、「更新しない」設定にしてあるのに、何で更新するんでしょうね?
フォルダに置いてあるカバー画像とかも勝手に変更するし?
確かにね?Windows2000とかって頃なら小さくしてくれるのはありがたかったですけど、
今のPCは、巨大なサムネイルを表示したり、タグで設定したAPICデータをイメージで表示したりそういったことも出来るのに、なんで32×32って何の絵か判別できないくらい小さいのにしてしまうんですかね??
因みに、あたしがTagに登録してあるデータは500×500くらいです。
これくらい最低限でしょ??
まぁ、何にせよ、消されても良いように、別に沢山保存してあるデータからコピーし直したり、無理矢理変更されたタグ情報を元に戻したり、不要に付けられたタグ情報を削除したり。
そう言った作業をしなくて良いだけマシなのです。
mp3が勝手に書き換わる原因である「CDDBのタグ」と「UFIDのタグ」はそのうち自動で全部削除するような機能を付ける予定。
まぁ、何はともあれ、3日でここまで出来れば上出来かな??
|