人生で初めてのWindowsデスクトップアプリケーションを自作してみました。
自分音楽が結構好きで、こういうものがあったら便利だったりするのかな?
と思い、作ってみました。
どんなアプリなのか
アプリの内容としては、
- yt-dlpでユーザーが指定したURLの動画を落としてくる
- それと、ユーザーの持っているリファレンスの音源を比較してYoutube音源との差分を出す。
というないようのアプリになります。
下記の投稿のように、波形を出して
自分の音源と、リファレンスの音源を調べるというものになります。
このアプリを作る際に考えなければならなかったこと
PythonのFletで音楽を再生する場合、使うユーザーの競合している音声出力ドライバと、このPythonのアプリが競合してしまうと、このアプリで音が出なくなったりもしくはアプリ自体がクラッシュしてしまうので、どうすればいいのかがわからない状態になっていました。
FFmpegのライセンス
FFmpegは基本的にそのまま同梱して使うことがライセンス上できません。
ですが、LGPL版を入れてそのFFmpegのexeファイルを同梱してアプリにすることは問題ないのですが、間違ってGPL版を入れてビルドしてしまうところだったことがあり、めっちゃ焦りました・・・・w
波形自体の軽量化
実は大抵の音響アプリ自体には、波形をすべて性格に出しているわけではなくて、大雑把に切り捨てをしています。
なぜならそうしないと描画する際のメモリがとんでもない大きさになってしまうからです。
ですので、ある程度の大きさで波形の描写をカットするようにするべきだったなと考えるべきでした。
アプリのテスト体制
FletはWebアプリと違ってSeleniumを使うことがデスクトップアプリのモードだと原則できません。
(Webアプリのモードだとできるのかはわからないけど)。
画面のテストが基本的にこいつ無いみたいでロジックのテストしかできないので、ロジックのテストしかできないという問題があります。
ほかのWindows環境で動かしたときに画面のテスト不足でアプリがクラッシュしたことが多くありました。
エラーハンドリングは大事ですね・・・。
以上になります。
もし質問がありましたらコメントまでお願い致します。
