No.656
LTC Player はPySimpleGUIの扱い方を探りながらです。Tkinterのラッパーらしいですが、簡単に使える反面制約が多いので、別な意味で難しいところがあります。
主な制約はウェジット(オブジェクト)の並べ方によって挙動が違うことです。全てではないのですが「ナゼそうなる!?」に出会うことが少なくありません。昨日もExecl的な表示をするTable機能で出くわしてしまい数時間悩んでしまいました。下記の試作品では「Add Music」が今の位置では期待通りの挙動をしますが、表の左隣りでは期待通りに動きません。ウェジットを単独テストしてからレイアウトに入れ込めば期待に反する挙動が起きても並べ方が原因だろうと予想出来ます。
問題点と言えば問題点ですが、クセといえばそれまでですし、TkinterやKivyに比べて簡単なことは余りある価値です。これで無理な製作は自分はやらないとすればいいでしょう。
画像は製作途中の物です。パラメータやレイアウトは今後変更していきますが、基本的な機能は実装出来ました。挙動を確認しながら進めていきます。
一般的な音楽プレーヤーには無い機能を考えています。
画面でわかりやすいのは「▼ NEXT ▼」です。プレイリストの順番で再生していくのは当然ですが、これにアサインしてからPLAYに行く前提です。曲順が入れ替わっても前の曲が再生している最中に呼び出せます。照明の卓っぽいですねwww。
あとは、曲間というか次の曲への手順を決めます。曲間が自動停止か続くかはもちろん、次の曲へ渡すまでの秒数を決める様にします。表のNextの列にPauseとあるのは自動停止、秒数らしき数字があるのは曲続きの意味と待ち秒数です。

VLCにも少し問題があります。
スライダーで再生ポジションを表示し変更できる様にしてありますが、スライダーの動作によってはVLCがタイムスタンプのエラーを出します。圧縮が高いmp3の為かもしれませんが原因は不明です。
止まりはしないのですが、エラー発生の後、テンポやピッチが狂うことがあります。ダンスイベントが主目的ですから本番でポジションスライダーを触ることは無いと思いますが、必要な時にテンポやピッチが狂うのは困ります。
処理手順の変更でエラーを防止できないか調べることにします。
追記
ふとアイデアが出て、本業中なのに手を止めて修正www
VLCのエラーは対策が出来たっぽい。
かなり面倒な手順ですが、
0)ポジションスライダーのイベント確認
1)再生停止 stop()
2)ポジションスライダーの情報からポジション値を計算
3)再生開始 play()(タイム00:00:00.00からになります)
4)再生確定まで待つ
5)ポジション値をセット
6)操作が一時停止中ならpause()
といった感じ。
VLCをリセットし、改めて再生して位置を宣言する手順です。
コマンドプロンプトにはエラー表示が出ず、テンポやピッチの狂いも起こっていないようです。
追記の2
mp3ファイルではポジションスライダーの行き来を繰り返すとタイムスタンプがズレることがあります。
いやーな感じでしたが、wavファイル(非圧縮)だと起こりません。mp3の圧縮方法を知っていると納得出来ますし、wavファイルで問題が無いならいいかなと。
#Python
主な制約はウェジット(オブジェクト)の並べ方によって挙動が違うことです。全てではないのですが「ナゼそうなる!?」に出会うことが少なくありません。昨日もExecl的な表示をするTable機能で出くわしてしまい数時間悩んでしまいました。下記の試作品では「Add Music」が今の位置では期待通りの挙動をしますが、表の左隣りでは期待通りに動きません。ウェジットを単独テストしてからレイアウトに入れ込めば期待に反する挙動が起きても並べ方が原因だろうと予想出来ます。
問題点と言えば問題点ですが、クセといえばそれまでですし、TkinterやKivyに比べて簡単なことは余りある価値です。これで無理な製作は自分はやらないとすればいいでしょう。
画像は製作途中の物です。パラメータやレイアウトは今後変更していきますが、基本的な機能は実装出来ました。挙動を確認しながら進めていきます。
一般的な音楽プレーヤーには無い機能を考えています。
画面でわかりやすいのは「▼ NEXT ▼」です。プレイリストの順番で再生していくのは当然ですが、これにアサインしてからPLAYに行く前提です。曲順が入れ替わっても前の曲が再生している最中に呼び出せます。照明の卓っぽいですねwww。
あとは、曲間というか次の曲への手順を決めます。曲間が自動停止か続くかはもちろん、次の曲へ渡すまでの秒数を決める様にします。表のNextの列にPauseとあるのは自動停止、秒数らしき数字があるのは曲続きの意味と待ち秒数です。

VLCにも少し問題があります。
スライダーで再生ポジションを表示し変更できる様にしてありますが、スライダーの動作によってはVLCがタイムスタンプのエラーを出します。圧縮が高いmp3の為かもしれませんが原因は不明です。
止まりはしないのですが、エラー発生の後、テンポやピッチが狂うことがあります。ダンスイベントが主目的ですから本番でポジションスライダーを触ることは無いと思いますが、必要な時にテンポやピッチが狂うのは困ります。
処理手順の変更でエラーを防止できないか調べることにします。
追記
ふとアイデアが出て、本業中なのに手を止めて修正www
VLCのエラーは対策が出来たっぽい。
かなり面倒な手順ですが、
0)ポジションスライダーのイベント確認
1)再生停止 stop()
2)ポジションスライダーの情報からポジション値を計算
3)再生開始 play()(タイム00:00:00.00からになります)
4)再生確定まで待つ
5)ポジション値をセット
6)操作が一時停止中ならpause()
といった感じ。
VLCをリセットし、改めて再生して位置を宣言する手順です。
コマンドプロンプトにはエラー表示が出ず、テンポやピッチの狂いも起こっていないようです。
追記の2
mp3ファイルではポジションスライダーの行き来を繰り返すとタイムスタンプがズレることがあります。
いやーな感じでしたが、wavファイル(非圧縮)だと起こりません。mp3の圧縮方法を知っていると納得出来ますし、wavファイルで問題が無いならいいかなと。
#Python