2009年11月11日
「flaHSPlayer」varsion 2009/11/11 19:16:35 split命令によるTSV配列変換の修正など
ミユ「今回もバグ修正メインなのでキャプとかはありませんよ。」
フレア「11/11だしハンマーかIKZOのキャプを期待したのに。」
ミユ「1.split命令によるTSV配列変換時の要素数の確認の強化。
flaHSPlayer.tsvを手動で書き換え間違えたりする起動しなくなる場合の対処です。
split config_recordtsv,"\t",config_record
この方法だとconfig_recordに配列格納されて便利なのですが、配列の要素数が正確じゃなくなると言うか、
if( strlen(config_record)>0 ){ config_record_length=length(config_record) }else{ config_record_length=0 }
↑を挟んで要素が空だったら0と自前で定義しないと、プレイヤーのX座標を初期化しようとする時に、
if( CONFIG_PLAYER_X<config_record_length ){ player_X=limit(int(config_record(CONFIG_PLAYER_X)),0,ginfo_dispx-player_W) }
プレイヤーを画面のだいたい真ん中に初期化するつもりが設定ファイルに0が入ってるとみなして左による恐れがありました。」
フレア「細い話だw」
ミユ「前のバージョンではlengthチェックが一切無かったからアプリが止まってたからね。
やるなら気が付いたとこは全部叩いておきたいし。」
ミユ「2.アクセラレーター命令のバッファオーバー予防。
実際のバグが再現されたのを見たことが無いけど、念のための予防です。
sdim ACCEL,(CMD_LIST_First+10)*6
アプリエラーには遭遇してないがACCELを冗長にとっておかないと、
p=(menuid-1)*6: poke accel,p,ctrlkey: wpoke accel,p+2,key: wpoke accel,p+4,menuid
の所でエラーが発生する危険性があるかもなので。」
フレア「ちなみに遭遇してないバグってどうやって見つけた?」
ミユ「ReqSeq開発でflaHSPlayerのソース流用でツールバー耕してる時に遭遇しました。
flaHSPlayerでは発生しないのが逆に怖いぐらい。」
ミユ「3.フリーサイズモードの不具合を一部修復。
フリーサイズモードを連続選択するとウィンドウサイズが変化していく現象への仮対処。
サブルーチンfresizechangeを用意して設定ファイルからウィンドウサイズを読み込んでなかったバグに対処したつもりだったのですが…
if( mode_fixsize!=cmd-CMD_RESIZE ){
mode_fixsize=cmd-CMD_RESIZE: gosub *fresizechange
}
ウィンドウの枠の太さを変更する時にクライアントサイズが変更されるのが原因っぽい。
SetWindowLong hwnd,GWL_STYLE,wstyle」
フレア「原因がわかってるならバグって取れるもんじゃないの?」
ミユ「安易に突貫工事すると一時しのぎの変数とか増えてそれが新たなバグを…
それにクライアントサイズの取得にまだ何か不具合があるかも知れないし、今回も無理をしない範囲での対応。」
フレア「…今気が付いたんだけどfresizechangeって本当はfreesizechangeと書きたかったんじゃ。」
ミユ「あ。」
フレア「あ、じゃないですよ。ソースコードで噛むとか普通は信用問題ですよ。」
ミユ「…さっきも言ったけどウィンドウの枠を変更した時のクライアントサイズ所得の方法が決まってないのでPre的なニュアンスに見えなくも。
さてReqSeqの開発に今回の成果をフィードバックしないと(汗」
フレア「ReqSeqってだいたいどこまで進んでるの。」
ミユ「とりあえず生演奏をMIDI Yoke経由でSynth1に飛ばしてAquesTalkが歌う所まで。」
フレア「それってほとんどできてるんじゃ?」
ミユ「肝心の自動演奏の所でちょっと詰まってる。
88888888分音符と1-------分音符をどうやって区別させるか、そのデータ仕様がまだ固まってなくて…」
フレア「とりあえずキャプうp。」
ミユ「GUIが企業秘密だから自動演奏を実装するまではダメ。」
フレア「完成するまで見せられないってどんなGUI。」
ミユ「パクられるのが嫌なのでノーコメント。とにかく特殊。なるだけ近いうちに発表予定。」
フレア「11/11だしハンマーかIKZOのキャプを期待したのに。」
ミユ「1.split命令によるTSV配列変換時の要素数の確認の強化。
flaHSPlayer.tsvを手動で書き換え間違えたりする起動しなくなる場合の対処です。
split config_recordtsv,"\t",config_record
この方法だとconfig_recordに配列格納されて便利なのですが、配列の要素数が正確じゃなくなると言うか、
if( strlen(config_record)>0 ){ config_record_length=length(config_record) }else{ config_record_length=0 }
↑を挟んで要素が空だったら0と自前で定義しないと、プレイヤーのX座標を初期化しようとする時に、
if( CONFIG_PLAYER_X<config_record_length ){ player_X=limit(int(config_record(CONFIG_PLAYER_X)),0,ginfo_dispx-player_W) }
プレイヤーを画面のだいたい真ん中に初期化するつもりが設定ファイルに0が入ってるとみなして左による恐れがありました。」
フレア「細い話だw」
ミユ「前のバージョンではlengthチェックが一切無かったからアプリが止まってたからね。
やるなら気が付いたとこは全部叩いておきたいし。」
ミユ「2.アクセラレーター命令のバッファオーバー予防。
実際のバグが再現されたのを見たことが無いけど、念のための予防です。
sdim ACCEL,(CMD_LIST_First+10)*6
アプリエラーには遭遇してないがACCELを冗長にとっておかないと、
p=(menuid-1)*6: poke accel,p,ctrlkey: wpoke accel,p+2,key: wpoke accel,p+4,menuid
の所でエラーが発生する危険性があるかもなので。」
フレア「ちなみに遭遇してないバグってどうやって見つけた?」
ミユ「ReqSeq開発でflaHSPlayerのソース流用でツールバー耕してる時に遭遇しました。
flaHSPlayerでは発生しないのが逆に怖いぐらい。」
ミユ「3.フリーサイズモードの不具合を一部修復。
フリーサイズモードを連続選択するとウィンドウサイズが変化していく現象への仮対処。
サブルーチンfresizechangeを用意して設定ファイルからウィンドウサイズを読み込んでなかったバグに対処したつもりだったのですが…
if( mode_fixsize!=cmd-CMD_RESIZE ){
mode_fixsize=cmd-CMD_RESIZE: gosub *fresizechange
}
ウィンドウの枠の太さを変更する時にクライアントサイズが変更されるのが原因っぽい。
SetWindowLong hwnd,GWL_STYLE,wstyle」
フレア「原因がわかってるならバグって取れるもんじゃないの?」
ミユ「安易に突貫工事すると一時しのぎの変数とか増えてそれが新たなバグを…
それにクライアントサイズの取得にまだ何か不具合があるかも知れないし、今回も無理をしない範囲での対応。」
フレア「…今気が付いたんだけどfresizechangeって本当はfreesizechangeと書きたかったんじゃ。」
ミユ「あ。」
フレア「あ、じゃないですよ。ソースコードで噛むとか普通は信用問題ですよ。」
ミユ「…さっきも言ったけどウィンドウの枠を変更した時のクライアントサイズ所得の方法が決まってないのでPre的なニュアンスに見えなくも。
さてReqSeqの開発に今回の成果をフィードバックしないと(汗」
フレア「ReqSeqってだいたいどこまで進んでるの。」
ミユ「とりあえず生演奏をMIDI Yoke経由でSynth1に飛ばしてAquesTalkが歌う所まで。」
フレア「それってほとんどできてるんじゃ?」
ミユ「肝心の自動演奏の所でちょっと詰まってる。
88888888分音符と1-------分音符をどうやって区別させるか、そのデータ仕様がまだ固まってなくて…」
フレア「とりあえずキャプうp。」
ミユ「GUIが企業秘密だから自動演奏を実装するまではダメ。」
フレア「完成するまで見せられないってどんなGUI。」
ミユ「パクられるのが嫌なのでノーコメント。とにかく特殊。なるだけ近いうちに発表予定。」
2009年10月23日
「flaHSPlayer」varsion 2009/10/23 21:47:45 リピートモード等の設定保存追加とドネーションウェア化のお知らせ。
ミユ「久しぶりの更新です。
HSP3.2が結構改善されてたのでflaHSPlayerも改善してみました。
・HSP3.2で再コンパイル。動作が速くなった。
・ソースから起動([flaHSPlayer.hsp])させる時にHSPコンパイラのあるフォルダに[flaHSPlayer.m3u.txt]を作成していた不具合を修正。
・ウィンドウの位置や再生モードなどの情報を[flaHSPlayer.tsv]に保存するようにした。
・strfが複数パラメーターに対応したので文字列連結箇所は数値計算の+と誤読をしないようにソースを読みやすくした。
・タイトルバーに表示するファイル名はパスを除いたファイル名に統一。
・動画を閉じた状態でもファイル番号をキープするようにした。
特にsplit命令のおかげでTSV/CSVの読込実装が大幅に楽に。
「split config_recordtsv,"\t",config_record」の1行でconfig_recordに自動で配列格納。」
フレア「なんでdir_cmdlineの抽出もsplitつかわないん?」
ミユ「例えば"C:\Program Files"。」
フレア「空白含むパスはダブルコーテーションで囲むんでしたねorz」
フレア「他に機能追加とかは特に?」
ミユ「背景真っ白はどうにかしたいけどとりあえずPayPal対応の告知をしたかったから。」
フレア「オープンソースをどうやってシェアウェアにするつもり。つか今時プレイヤーで金は取れないと思うが。」
ミユ「ドネーションウェア(カンパウェア)にするつもり。課金の本命は別途あるし。」
フレア「思い出した。8時間惑星はどうなった。」
ミユ「その前にレクィド君が曲を書いてくれないしシルキちゃんもキャラを描いてくれないしフレア大先生はネームを」
フレア「ゲフンゲフン。」
ミユ「ボトルネック解決のため、とりあえず作曲ツールでも作ろうかと。詳細は別記事でまた。
とにかくその作曲ツールReqSeq(仮)を完成させる前に課金システムを稼動して置きたくて、
先行投資的に「flaHSPlayer」にも金額を設定してみました。」
フレア「最初無料と言っていたモノに値段が付くと恐ろしいまでの反発があるのですが。
<EmEditor v9へのアップグレード有償化を撤回(Electronic Genome)>
> 残念ながら昨今の経済情勢の悪化により、やむを得ず v9 では有料アップグレードを検討することとなりました。
> 一人ひとりのご意見を真摯に受け止め、再検討を重ねた結果、
> EmEditor の無料アップグレードサービスを継続することを決定いたしました。
> v8のヘルプファイル内の「ご購入の利点」という項に「メジャーなバージョンでも、通常すべて無料です。」と書いてしまっている。
> この「通常」が何を指すのか?何が「通常」ではないのか?というあたりが不明瞭だとの指摘もフォーラムで見かけました。
<アイテム販売を始めたmixiサンシャイン牧場のクレームがすごい(ぼくはまちちゃん!(Hatena))>
> 所得上の問題や、定職についていないからとクレジットカードを使えない人間の気持ちがお分かりですか?!
> クレジットのみということは、未成年締め出しという事になるんですが。運営者は頭大丈夫?
> みんながみんなクレカ所持してるわけではないんですよ?せめてウェブマネーにも対応するようにしていただかないと。
> 不思議なものですが、コンビニ決済、WEBマネーなどあるとなぜか安心感がありますが。私だけですかね?」
ミユ「PayPalならクレジットカードが無くても使えます!デビットカードで十分です!デビットは銀行口座と同じ感覚で作れます!」
フレア「ちなみに日本でVISAデビット扱ってるところといえばスルガ銀行(金融機関コード0150)。
<SURUGA VISA デビットカード あなたの口座に直結! キャッシュレス時代の切り札登場!(スルガ銀行マイ支店)>
> SURUGA VISAデビットカードは、クレジットカードではありません。
> お買い物の際にお客さまの口座から引き落とす新しい決済システムを搭載したカードです。
> 口座残高の範囲内でスマートに出費をコントロールできるので、クレジットカードのように使い過ぎる心配がありません。
それとイーバンク銀行(銀行コード:0036)。
<イーバンクマネーカードTOP(イーバンク銀行)>
> 世界中のVISA加盟店で、24時間・365日利用できる「VISAデビットカード」と、
> イーバンク銀行のキャッシュカードが1枚になった、一体型カードです。
> 預金の範囲内でクレジットカードのように使える「VISAデビットカード」は、
> 使いすぎを心配することなくキャッシュレスで決済ができる、とても便利な機能です。」
ミユ「flaHSPlayer、あくまでドネーションウェアという扱いです。雑所得です。」
フレア「とはいえooblogが求職中の身である以上、実質メインの収入じゃんorz」
HSP3.2が結構改善されてたのでflaHSPlayerも改善してみました。
・HSP3.2で再コンパイル。動作が速くなった。
・ソースから起動([flaHSPlayer.hsp])させる時にHSPコンパイラのあるフォルダに[flaHSPlayer.m3u.txt]を作成していた不具合を修正。
・ウィンドウの位置や再生モードなどの情報を[flaHSPlayer.tsv]に保存するようにした。
・strfが複数パラメーターに対応したので文字列連結箇所は数値計算の+と誤読をしないようにソースを読みやすくした。
・タイトルバーに表示するファイル名はパスを除いたファイル名に統一。
・動画を閉じた状態でもファイル番号をキープするようにした。
特にsplit命令のおかげでTSV/CSVの読込実装が大幅に楽に。
「split config_recordtsv,"\t",config_record」の1行でconfig_recordに自動で配列格納。」
フレア「なんでdir_cmdlineの抽出もsplitつかわないん?」
ミユ「例えば"C:\Program Files"。」
フレア「空白含むパスはダブルコーテーションで囲むんでしたねorz」
フレア「他に機能追加とかは特に?」
ミユ「背景真っ白はどうにかしたいけどとりあえずPayPal対応の告知をしたかったから。」
フレア「オープンソースをどうやってシェアウェアにするつもり。つか今時プレイヤーで金は取れないと思うが。」
ミユ「ドネーションウェア(カンパウェア)にするつもり。課金の本命は別途あるし。」
フレア「思い出した。8時間惑星はどうなった。」
ミユ「その前にレクィド君が曲を書いてくれないしシルキちゃんもキャラを描いてくれないしフレア大先生はネームを」
フレア「ゲフンゲフン。」
ミユ「ボトルネック解決のため、とりあえず作曲ツールでも作ろうかと。詳細は別記事でまた。
とにかくその作曲ツールReqSeq(仮)を完成させる前に課金システムを稼動して置きたくて、
先行投資的に「flaHSPlayer」にも金額を設定してみました。」
フレア「最初無料と言っていたモノに値段が付くと恐ろしいまでの反発があるのですが。
<EmEditor v9へのアップグレード有償化を撤回(Electronic Genome)>
> 残念ながら昨今の経済情勢の悪化により、やむを得ず v9 では有料アップグレードを検討することとなりました。
> 一人ひとりのご意見を真摯に受け止め、再検討を重ねた結果、
> EmEditor の無料アップグレードサービスを継続することを決定いたしました。
> v8のヘルプファイル内の「ご購入の利点」という項に「メジャーなバージョンでも、通常すべて無料です。」と書いてしまっている。
> この「通常」が何を指すのか?何が「通常」ではないのか?というあたりが不明瞭だとの指摘もフォーラムで見かけました。
<アイテム販売を始めたmixiサンシャイン牧場のクレームがすごい(ぼくはまちちゃん!(Hatena))>
> 所得上の問題や、定職についていないからとクレジットカードを使えない人間の気持ちがお分かりですか?!
> クレジットのみということは、未成年締め出しという事になるんですが。運営者は頭大丈夫?
> みんながみんなクレカ所持してるわけではないんですよ?せめてウェブマネーにも対応するようにしていただかないと。
> 不思議なものですが、コンビニ決済、WEBマネーなどあるとなぜか安心感がありますが。私だけですかね?」
ミユ「PayPalならクレジットカードが無くても使えます!デビットカードで十分です!デビットは銀行口座と同じ感覚で作れます!」
フレア「ちなみに日本でVISAデビット扱ってるところといえばスルガ銀行(金融機関コード0150)。
<SURUGA VISA デビットカード あなたの口座に直結! キャッシュレス時代の切り札登場!(スルガ銀行マイ支店)>
> SURUGA VISAデビットカードは、クレジットカードではありません。
> お買い物の際にお客さまの口座から引き落とす新しい決済システムを搭載したカードです。
> 口座残高の範囲内でスマートに出費をコントロールできるので、クレジットカードのように使い過ぎる心配がありません。
それとイーバンク銀行(銀行コード:0036)。
<イーバンクマネーカードTOP(イーバンク銀行)>
> 世界中のVISA加盟店で、24時間・365日利用できる「VISAデビットカード」と、
> イーバンク銀行のキャッシュカードが1枚になった、一体型カードです。
> 預金の範囲内でクレジットカードのように使える「VISAデビットカード」は、
> 使いすぎを心配することなくキャッシュレスで決済ができる、とても便利な機能です。」
ミユ「flaHSPlayer、あくまでドネーションウェアという扱いです。雑所得です。」
フレア「とはいえooblogが求職中の身である以上、実質メインの収入じゃんorz」
2009年08月03日
「flaHSPlayer」varsion 2009/08/01 18:30:14 履歴検索中に本体ウィンドウの閉じるボタンが押せた件を修正。
ミユ「今回修正した所はタイトル通り、それだけです。」
フレア「その修正した所のソースの解説まで踏み込んでくだしあ><」
ミユ「「履歴を検索(F)」で使用してるダイアログはVBSを呼び出してるんだけど、
objVBS->"AddCode" "Dim retstr,retlen: Function vbcmd(prompt,title,default): retstr=InputBox(prompt,title,default): retlen=Len(retstr): End Function"
VBSダイアログ表示中にHSPのウィンドウを閉じてしまうと、
プロセス[flaHSPlayer.exe]が残るという問題がありました。
対策としてウィンドウ操作を無効化する命令を前後に搭載。
EnableWindow hwnd,0 ←無効化
EnableWindow hwnd,1 ←有効化
ちなみにモジュール[comtool.as]内の出来事。ではありますが、
事前にuser32のEnableWindowを定義する必要あり。
#uselib "user32.dll"
#func global EnableWindow "EnableWindow" sptr,int」
フレア「モジュール単体で解決できないもんなの?」
ミユ「funcやuselibを多重定義の問題に遭遇する恐れがどうしても。
HSP同梱の[user32.as]をIncludeすること前提にしてしまえばいいんだけど、
そうすると[user32.as]も[flaHSPlayer.lzh]に同梱したくなるじゃないですか。
[flaHSPlayer.hsp]が30KBに対して[user32.as]が45KB。本体より大きなIncludeファイルってシュールでしょ?」
フレア「GWL_STYLE-16とかconst(define)追加されて無いと読みづらい場所があるのも事実。
必要な所をコピペして修正かけた方がデバッグしやすいって事か…」
フレア「その修正した所のソースの解説まで踏み込んでくだしあ><」
ミユ「「履歴を検索(F)」で使用してるダイアログはVBSを呼び出してるんだけど、
objVBS->"AddCode" "Dim retstr,retlen: Function vbcmd(prompt,title,default): retstr=InputBox(prompt,title,default): retlen=Len(retstr): End Function"
VBSダイアログ表示中にHSPのウィンドウを閉じてしまうと、
プロセス[flaHSPlayer.exe]が残るという問題がありました。
対策としてウィンドウ操作を無効化する命令を前後に搭載。
EnableWindow hwnd,0 ←無効化
EnableWindow hwnd,1 ←有効化
ちなみにモジュール[comtool.as]内の出来事。ではありますが、
事前にuser32のEnableWindowを定義する必要あり。
#uselib "user32.dll"
#func global EnableWindow "EnableWindow" sptr,int」
フレア「モジュール単体で解決できないもんなの?」
ミユ「funcやuselibを多重定義の問題に遭遇する恐れがどうしても。
HSP同梱の[user32.as]をIncludeすること前提にしてしまえばいいんだけど、
そうすると[user32.as]も[flaHSPlayer.lzh]に同梱したくなるじゃないですか。
[flaHSPlayer.hsp]が30KBに対して[user32.as]が45KB。本体より大きなIncludeファイルってシュールでしょ?」
フレア「GWL_STYLE-16とかconst(define)追加されて無いと読みづらい場所があるのも事実。
必要な所をコピペして修正かけた方がデバッグしやすいって事か…」
2009年06月15日
「flaHSPlayer」varsion 2009/06/15 01:31:10 1ヶ所バグ修正と実験の痕跡。
ミユ「連続再生時にウィンドウが点滅する現象を修正しました。以上です。
(*repaintを呼ぶべき箇所で*resizeを呼び出してた箇所の修正)」
フレア「え、それだけ?」
ミユ「いや本当は半透明機能を取り付けようとして実験してました。
Flash再生時は普通に半透明されるけど、mp4を再生するときに画面がバグるから無理でした。
ソースにはその痕跡が残ってますSetLayeredWindowAttributesのあたりです。
プログラムの知識をかじって見たい方は自己責任で。」
フレア「バグの修正と新機能をセットにするのやめような…一ヶ月も放置て。」
(*repaintを呼ぶべき箇所で*resizeを呼び出してた箇所の修正)」
フレア「え、それだけ?」
ミユ「いや本当は半透明機能を取り付けようとして実験してました。
Flash再生時は普通に半透明されるけど、mp4を再生するときに画面がバグるから無理でした。
ソースにはその痕跡が残ってますSetLayeredWindowAttributesのあたりです。
プログラムの知識をかじって見たい方は自己責任で。」
フレア「バグの修正と新機能をセットにするのやめような…一ヶ月も放置て。」
2009年05月10日
「flaHSPlayer」varsion 2009/05/10 15:47:32 InputBox検索機能の追加など。
ミユ「HSPでプログラミングをしていると思ってたら何時の間にかVBのコードを書いてました。
フレア「何を言ってるのか解かr」
ミユ「HSPから「InputBox」を呼び出す方法が解ったので、検索機能を追加です。

特にVOCALOID関連のフォルダを読み込ませると履歴が数百件になると思われますが、
曲名入力で該当するファイルを集めることができます。
「すぐ再生モード」なら曲名で再生させることも可能です。
ついでに「selfolder」を「BrowseForFolder」に置き換えたので[hspext.dll]も不要になりました。
」
フレア「他に増えたメニューの解説を。」
ミユ「「クローズ」で再生中の動画を停止させ、履歴から外します。
動画再生中に[flaHSPlayer.m3u.txt]を全消ししても再生中の動画は再登録する仕様なので、
最後に残った再生中の動画を外すのに使います。
その他、再生に失敗した動画も履歴から外れる様にしました。」
フレア「拡張子が間違ってると履歴からハブられる仕様ですねorz」
ミユ「あと前回の更新で最大化ボタン付け忘れてたので追加。
ウィンドウサイズにブルーレイなどを追加。そんなとこです。」
フレア「何を言ってるのか解かr」
ミユ「HSPから「InputBox」を呼び出す方法が解ったので、検索機能を追加です。

特にVOCALOID関連のフォルダを読み込ませると履歴が数百件になると思われますが、
曲名入力で該当するファイルを集めることができます。
「すぐ再生モード」なら曲名で再生させることも可能です。
ついでに「selfolder」を「BrowseForFolder」に置き換えたので[hspext.dll]も不要になりました。
」フレア「他に増えたメニューの解説を。」
ミユ「「クローズ」で再生中の動画を停止させ、履歴から外します。
動画再生中に[flaHSPlayer.m3u.txt]を全消ししても再生中の動画は再登録する仕様なので、
最後に残った再生中の動画を外すのに使います。
その他、再生に失敗した動画も履歴から外れる様にしました。」
フレア「拡張子が間違ってると履歴からハブられる仕様ですねorz」
ミユ「あと前回の更新で最大化ボタン付け忘れてたので追加。
ウィンドウサイズにブルーレイなどを追加。そんなとこです。」
2009年05月02日
「flaHSPlayer」varsion 2009/05/02 03:39:34 はMCIで軽量化!
ミユ「MCIで動画を制御するようにしたので今回のバージョンより[hmm.dll]が不要になりました。
436KB→143KBと[flaHSPlayer.lzh]のアーカイブサイズが小さくなりました。
あと見た目で大きく変わった所はウィンドウサイズを変更できるようにしました。

再生時間のミリ秒を小数点にしました。
シークバー1分毎のメモリに10分毎のカウンターが付きました([.swf]除く)。
「動画を開く(O)」やドラッグアンドドロップが[.m3u]に対応したので、「[.m3u]を開く」系のメニューを廃止です。
ボリューム変更をコンパネを呼び出す形で対応です。」
フレア「あれ?以前MCIだと不具合が発生するとか言ってませんでした?」
ミユ「コーデックに原因というか、動画とコーデックとスプリッターの相性の問題が。
個別に入れてたスプリッターとか一旦アンインストールして「K-Lite Codec Pack」導入したら、
アプリケーションエラーとかウィンドウの分離が無くなりました。
別の問題も同時に発生。
動画に正しい拡張子が付けられてないと再生できない場合があります。」
フレア「「真空波動研」とか「極窓」で解析すればいいと思うよ。」
フレア「[.m3u]の入ったフォルダをドロップしても展開されない問題は先送りですか。」
ミユ「しかもその[.m3u]にはフォルダ名が含まれているわけですから。
仮に読み込む時に厳重な再帰チェックをしても「履歴を編集(E)」があるから
再帰の回避は困難なんですよね。
やれなくはないはずなんですけど、アプリが重くなる予感がするので。
当面は[.m3u]を読みませる時は直接開いてもらうしかないです。」
ミユ「本当は動画検索機能が欲しいんだけど、
ファイルの検索だけで単独でソフトが1本作れそうな気がするし、
簡単なサルベージ方法思いつくまでは機能追加はないかも。」
フレア「ニコニコムービーメーカーで作成された動画なら25fpsって決まってるから、
何とかswfを解析してメモリ付ける方法って無い?」
436KB→143KBと[flaHSPlayer.lzh]のアーカイブサイズが小さくなりました。
あと見た目で大きく変わった所はウィンドウサイズを変更できるようにしました。

再生時間のミリ秒を小数点にしました。
シークバー1分毎のメモリに10分毎のカウンターが付きました([.swf]除く)。
「動画を開く(O)」やドラッグアンドドロップが[.m3u]に対応したので、「[.m3u]を開く」系のメニューを廃止です。
ボリューム変更をコンパネを呼び出す形で対応です。」
フレア「あれ?以前MCIだと不具合が発生するとか言ってませんでした?」
ミユ「コーデックに原因というか、動画とコーデックとスプリッターの相性の問題が。
個別に入れてたスプリッターとか一旦アンインストールして「K-Lite Codec Pack」導入したら、
アプリケーションエラーとかウィンドウの分離が無くなりました。
別の問題も同時に発生。
動画に正しい拡張子が付けられてないと再生できない場合があります。」
フレア「「真空波動研」とか「極窓」で解析すればいいと思うよ。」
フレア「[.m3u]の入ったフォルダをドロップしても展開されない問題は先送りですか。」
ミユ「しかもその[.m3u]にはフォルダ名が含まれているわけですから。
仮に読み込む時に厳重な再帰チェックをしても「履歴を編集(E)」があるから
再帰の回避は困難なんですよね。
やれなくはないはずなんですけど、アプリが重くなる予感がするので。
当面は[.m3u]を読みませる時は直接開いてもらうしかないです。」
ミユ「本当は動画検索機能が欲しいんだけど、
ファイルの検索だけで単独でソフトが1本作れそうな気がするし、
簡単なサルベージ方法思いつくまでは機能追加はないかも。」
フレア「ニコニコムービーメーカーで作成された動画なら25fpsって決まってるから、
何とかswfを解析してメモリ付ける方法って無い?」
2009年04月14日
「flaHSPlayer」varsion 2009/04/14 09:00:21 二重起動防止とモード切替方法の変更など
ミユ「すぐ再生/後で再生のモード切替の予知は諦めて普通にメニューから変更できるようにしました。


多重起動を防止し、拡張子の関連付け起動からも動画を拾うようになりました。
SendToで起動の時DLLを取りこぼすバグは修正されました。
[Ctrl+N]で次の動画を開くようになりました(各[Ctrl+*]などの動作対応)。
…PeekMessageがトラブルメーカー過ぎます。
時折タスクのプロセスに[flahsplayer.exe]が残る場合があります。
二重起動を防止しているので、プロセスが残っていると動かなくなります。
[Ctrl+Shift+Esc]でタスクマネージャーが起動するので」
フレア「[Ctrl+L]を押した時にL(22)番目のファイルが選択される時があるんですけどorz
何とかなりませんか。」
ミユ「HSPのwait/awaitとWinAPIのGetMessage/PeekMessageの相性が悪いんです。どうしようもないです。
相性の問題ついでにもう1つ。付属の[hmm.as]はちょっと改変しています。
//#func HMMEND HMMEND $100
#func HMMEND HMMEND
経緯。
0.二重起動防止機能の追加などでdshinitを通過しないendが発生。
1.dshinitを呼んでないのにHMMENDを読むとエラー。
2.dshinitの返り値を記憶してonexitの時に判断してdllを開放。
3.HMMENDでdllを開放した状態で再度読むとエラー。$100なので二重呼び出し。
4.[hmm.as]を書き換えて二重呼び出しを予防。」
ミユ「二重起動を避けて既に起動済みのプロセスにファイルリストの情報を渡すために、
CreateMutexAとRegisterWindowMessageAを組み合わせて」
フレア「WinAPIの愚痴をだらだらと進めてもだるくなるので、
今後のバージョンで何が変わるか的な話を。」
ミユ「機能追加の前に[.m3u]の再帰回避。
それと拡張子で再生できるか判定しても[.flv]に関しては信用できないから、
再生に失敗してアプリケーションエラーを起こす動画のNGリスト作るかも。」
フレア「ウィンドウのサイズ変更とか解りやすい改善はまだ先ですか。」


多重起動を防止し、拡張子の関連付け起動からも動画を拾うようになりました。
SendToで起動の時DLLを取りこぼすバグは修正されました。
[Ctrl+N]で次の動画を開くようになりました(各[Ctrl+*]などの動作対応)。
…PeekMessageがトラブルメーカー過ぎます。
時折タスクのプロセスに[flahsplayer.exe]が残る場合があります。
二重起動を防止しているので、プロセスが残っていると動かなくなります。
[Ctrl+Shift+Esc]でタスクマネージャーが起動するので」
フレア「[Ctrl+L]を押した時にL(22)番目のファイルが選択される時があるんですけどorz
何とかなりませんか。」
ミユ「HSPのwait/awaitとWinAPIのGetMessage/PeekMessageの相性が悪いんです。どうしようもないです。
相性の問題ついでにもう1つ。付属の[hmm.as]はちょっと改変しています。
//#func HMMEND HMMEND $100
#func HMMEND HMMEND
経緯。
0.二重起動防止機能の追加などでdshinitを通過しないendが発生。
1.dshinitを呼んでないのにHMMENDを読むとエラー。
2.dshinitの返り値を記憶してonexitの時に判断してdllを開放。
3.HMMENDでdllを開放した状態で再度読むとエラー。$100なので二重呼び出し。
4.[hmm.as]を書き換えて二重呼び出しを予防。」
ミユ「二重起動を避けて既に起動済みのプロセスにファイルリストの情報を渡すために、
CreateMutexAとRegisterWindowMessageAを組み合わせて」
フレア「WinAPIの愚痴をだらだらと進めてもだるくなるので、
今後のバージョンで何が変わるか的な話を。」
ミユ「機能追加の前に[.m3u]の再帰回避。
それと拡張子で再生できるか判定しても[.flv]に関しては信用できないから、
再生に失敗してアプリケーションエラーを起こす動画のNGリスト作るかも。」
フレア「ウィンドウのサイズ変更とか解りやすい改善はまだ先ですか。」
「flaHSPlayer」varsion 2009/04/12 22:14:07の不具合について
ミユ「緊急ではないですが結構痛いバグなので報告します。
1.Accelerator関連が動かない状態。
[Ctrl+O]で動画を開くといったキーボード操作の反応がありません。
マウスでの操作には支障は無いはずです。
2.SendToフォルダからの起動が出来ない状態。
右クリック→送る(N)で開こうとすると「hmm.dll」を認知できずに起動できません。
フォルダ追加はメニューから、もしくはドラッグアンドドロップで対応してください。
SendToは単純ミスだったので修復できました。
Accelerator関連は原因を調査中です。
デバッグ漏れがあってすみませんでした。」
1.Accelerator関連が動かない状態。
[Ctrl+O]で動画を開くといったキーボード操作の反応がありません。
マウスでの操作には支障は無いはずです。
2.SendToフォルダからの起動が出来ない状態。
右クリック→送る(N)で開こうとすると「hmm.dll」を認知できずに起動できません。
フォルダ追加はメニューから、もしくはドラッグアンドドロップで対応してください。
SendToは単純ミスだったので修復できました。
Accelerator関連は原因を調査中です。
デバッグ漏れがあってすみませんでした。」
2009年04月13日
「flaHSPlayer」varsion 2009/04/12 22:14:07より[.m3u]等対応。
ミユ「[.m3u]対応とアクセラレータ対応は影響ないと思って同時処理しようとしたら、
バグが見つからずハマリ状態になってました…PeekMessageAって…
あ、独り言です。で、今回追加された主な機能です。
履歴から開く

「flaHSPlayer」で再生された動画は基本的に履歴[flaHSPlayer.m3u.txt]に蓄積されます。
履歴管理するために同時に次の機能もセットで取り付けました。
すぐ再生モード/後で再生モード
その時の気分で「履歴に追加だけして後で見たい」という場合もあります。
そこで「動画を開く/動画を追加」と、メニューをあえて2つ用意してみました。」
フレア「ドラッグアンドドロップの際」
ミユ「仕様です。今はまだ前回の行動によるモード切替ですが、
行動パターンから推理する機能とかもできればいいかなと思ってます。」
フレア「そうじゃなくて、[.m3u]を直接ドロップした時や
[.m3u]を含むフォルダをドロップすると[.m3u]が直接履歴に登録されてしまう問題が。」
ミユ「拡張子判定とか再生NGリストの作成はまだ先の話です…
ヘタに[.m3u]周辺をひとまとめにすると再帰バグの危険性があるから警戒中です。」
フレア「むしろドラッグアンドドロップとかいう操作自体がめんどくさいから、
[.mp3]をダブルクリックで再生できるようにしてよ。1窓で。」
ミユ「拡張子の関連付け起動を後回しにしてたから複数起動問題を忘れてた…善処します。
あ、それとその他追加した機能。
[hspext.dll]などのプラグインの有無チェック。
シークバーに1分毎にメモリ。ただし[.swf]は測定不能。
リピートモード。解除すると[.swf]であっても曲の終わりを推理して次の動画が再生されます。
「伯方の塩ボタン」といった
ボタン系のフラッシュを再生するときはリピートモードをONにしてください。
[.swf]がキーボードを認識しなくなった場合は動画内をクリックすると反応が復活します」
フレア「複数起動防止機能はむしろ歓迎なので許すけど、
それ追加したら8時間惑星の開発に戻って。頼む。」
ミユ「音楽はまだですか?背景やキャラクターはまだですか?」
フレア「なんで素材がまだ上がってこないんだろorz」
ミユ「催促する時、根性論とか持ち出したらBURN ENDですよ。
開発環境や制作手順などのモノ作りの仕組みの方に不具合がある場合、
視点を変えて無限回廊を回避するように助けてあげるのがフレアさんの役割ですからね。」
フレア「(PeekMessageAって何だったんだ…HSPにそんな命令無かったはず…)」
バグが見つからずハマリ状態になってました…PeekMessageAって…
あ、独り言です。で、今回追加された主な機能です。
履歴から開く

「flaHSPlayer」で再生された動画は基本的に履歴[flaHSPlayer.m3u.txt]に蓄積されます。
履歴管理するために同時に次の機能もセットで取り付けました。
すぐ再生モード/後で再生モード
その時の気分で「履歴に追加だけして後で見たい」という場合もあります。
そこで「動画を開く/動画を追加」と、メニューをあえて2つ用意してみました。」
フレア「ドラッグアンドドロップの際」
ミユ「仕様です。今はまだ前回の行動によるモード切替ですが、
行動パターンから推理する機能とかもできればいいかなと思ってます。」
フレア「そうじゃなくて、[.m3u]を直接ドロップした時や
[.m3u]を含むフォルダをドロップすると[.m3u]が直接履歴に登録されてしまう問題が。」
ミユ「拡張子判定とか再生NGリストの作成はまだ先の話です…
ヘタに[.m3u]周辺をひとまとめにすると再帰バグの危険性があるから警戒中です。」
フレア「むしろドラッグアンドドロップとかいう操作自体がめんどくさいから、
[.mp3]をダブルクリックで再生できるようにしてよ。1窓で。」
ミユ「拡張子の関連付け起動を後回しにしてたから複数起動問題を忘れてた…善処します。
あ、それとその他追加した機能。
[hspext.dll]などのプラグインの有無チェック。
シークバーに1分毎にメモリ。ただし[.swf]は測定不能。
リピートモード。解除すると[.swf]であっても曲の終わりを推理して次の動画が再生されます。
「伯方の塩ボタン」といった
ボタン系のフラッシュを再生するときはリピートモードをONにしてください。
[.swf]がキーボードを認識しなくなった場合は動画内をクリックすると反応が復活します」
フレア「複数起動防止機能はむしろ歓迎なので許すけど、
それ追加したら8時間惑星の開発に戻って。頼む。」
ミユ「音楽はまだですか?背景やキャラクターはまだですか?」
フレア「なんで素材がまだ上がってこないんだろorz」
ミユ「催促する時、根性論とか持ち出したらBURN ENDですよ。
開発環境や制作手順などのモノ作りの仕組みの方に不具合がある場合、
視点を変えて無限回廊を回避するように助けてあげるのがフレアさんの役割ですからね。」
フレア「(PeekMessageAって何だったんだ…HSPにそんな命令無かったはず…)」
2009年03月31日
「flaHSPlayer」Varsion 20090330よりmp4等対応。
ミユ「「flaHSPlayer」を[.mp4]とか[.flv]とか[.mp3]とかも再生できるようにしました。


今後の予定として複数ファイルをドロップした時の」
フレア「どうしても突っ込みたいポイントがあるのだが。
dshgetoriginalvideosizeで動画の長さを取得できるのに
mci "status flv length": TotalFrames=statで取得した理由は何故。」
ミユ「hmmで動画の長さを取得しようとすると
「783402034」という値が帰ってくる場合があるから。
コーデックが原因なのか何なのかまで調べる時間なんて無いし。」
フレア「いっそのことmciで作っちゃえばどうなのよ。」
ミユ「mciなんて油断すると別ウィンドウで開くし、ドラッグアンドドロップできないし。
動画のステータス読み込むのに便利だけど再生制御にはちょっとね…。」
フレア「一部[.flv]が「FLV Splitter」と「ffdshow」を導入しても再生できないのですが。」
ミユ「コーデック自体の質問は私にも解らないので独自にググって下さい。」
ミユ「今回よりダウンロード先が変わります。
左下にあるブログパーツ、「ソフト使用のガイドライン」を参考にしていただければ。
URIがhttp://ooblog.livedoor.biz/miyu/〜なのは仕様です。
マルチブログになってからFTPのアクセス先がまだわからないので、仕方ないんです。」
フレア「(「8時間惑星」が完成するまでドメイン禁止令出してた手前、
人のフォルダに勝手にファイル置くなとツッコミができないorz)」
フレア「あ。ぽっぴっぽーPVのキャプチャってどうやってやった?
普通に[PrtSc]ボタン押しても保存できないけど。合成?」
ミユ「失礼な。キャプチャする裏業ぐらい用意しましたよ。
<動画再生中のウィンドウをキャプチャする(日経トレンディネット)>
> メディアプレイヤーで動画を再生している場合、
> 「Alt」+「PrintScreen」というキー操作でウィンドウイメージをコピーしても、
> 肝心の動画の内容はコピーされない。
> これは、メディアプレイヤーが「ビデオ・オーバーレイ」という機能で動画を表示しているため
> 回避するには、キャプチャするソフトを起動する前にこの機能を利用する他のソフトを起動しておけばよい。
> Windows XPではビデオ・オーバーレイを同時にひとつしか利用できない」
フレア「あれ?[.swf]を選択したプログラムをいつも使うにしても再生されないんですけど?」
ミユ「それも最初に言いかけた複数ファイルをドロップした時の挙動と関連するんだけど、
「[.EXE]アイコンにドロップ」と「ウィンドウにドロップ」の二つは同じルーチンを通すべきだし、
[.exe]複数起動は抑制してファイルリストに溜め込む予定だし、
結局ファイルリスト関連の仕様をある程度詰めるまでそれらの処理は手を付けられないというか、
中途半端に手を出してもプログラムがムダに複雑化するから、とりあえず、
拡張子関連付け対応はちょっとまだ先です。」
フレア「…基本HSPで[.swf]再生するだけなのにやる事やたら増えてきてない?」
ミユ「ユーザーが抽象化されたインターフェイスを満喫するためには、
無意識になんとなくでやってた事を洗い出さなきゃいけないのです。」


今後の予定として複数ファイルをドロップした時の」
フレア「どうしても突っ込みたいポイントがあるのだが。
dshgetoriginalvideosizeで動画の長さを取得できるのに
mci "status flv length": TotalFrames=statで取得した理由は何故。」
ミユ「hmmで動画の長さを取得しようとすると
「783402034」という値が帰ってくる場合があるから。
コーデックが原因なのか何なのかまで調べる時間なんて無いし。」
フレア「いっそのことmciで作っちゃえばどうなのよ。」
ミユ「mciなんて油断すると別ウィンドウで開くし、ドラッグアンドドロップできないし。
動画のステータス読み込むのに便利だけど再生制御にはちょっとね…。」
フレア「一部[.flv]が「FLV Splitter」と「ffdshow」を導入しても再生できないのですが。」
ミユ「コーデック自体の質問は私にも解らないので独自にググって下さい。」
ミユ「今回よりダウンロード先が変わります。
左下にあるブログパーツ、「ソフト使用のガイドライン」を参考にしていただければ。
URIがhttp://ooblog.livedoor.biz/miyu/〜なのは仕様です。
マルチブログになってからFTPのアクセス先がまだわからないので、仕方ないんです。」
フレア「(「8時間惑星」が完成するまでドメイン禁止令出してた手前、
人のフォルダに勝手にファイル置くなとツッコミができないorz)」
フレア「あ。ぽっぴっぽーPVのキャプチャってどうやってやった?
普通に[PrtSc]ボタン押しても保存できないけど。合成?」
ミユ「失礼な。キャプチャする裏業ぐらい用意しましたよ。
<動画再生中のウィンドウをキャプチャする(日経トレンディネット)>
> メディアプレイヤーで動画を再生している場合、
> 「Alt」+「PrintScreen」というキー操作でウィンドウイメージをコピーしても、
> 肝心の動画の内容はコピーされない。
> これは、メディアプレイヤーが「ビデオ・オーバーレイ」という機能で動画を表示しているため
> 回避するには、キャプチャするソフトを起動する前にこの機能を利用する他のソフトを起動しておけばよい。
> Windows XPではビデオ・オーバーレイを同時にひとつしか利用できない」
フレア「あれ?[.swf]を選択したプログラムをいつも使うにしても再生されないんですけど?」
ミユ「それも最初に言いかけた複数ファイルをドロップした時の挙動と関連するんだけど、
「[.EXE]アイコンにドロップ」と「ウィンドウにドロップ」の二つは同じルーチンを通すべきだし、
[.exe]複数起動は抑制してファイルリストに溜め込む予定だし、
結局ファイルリスト関連の仕様をある程度詰めるまでそれらの処理は手を付けられないというか、
中途半端に手を出してもプログラムがムダに複雑化するから、とりあえず、
拡張子関連付け対応はちょっとまだ先です。」
フレア「…基本HSPで[.swf]再生するだけなのにやる事やたら増えてきてない?」
ミユ「ユーザーが抽象化されたインターフェイスを満喫するためには、
無意識になんとなくでやってた事を洗い出さなきゃいけないのです。」
