[
新規
] - [
ツリー
] - [
スレッド
] [
未解決
] [
緊急
] - [
優先
] - [
検索
] - [
なでしこTOP
]
「なでしこv1」開発掲示板
なでしこv1のバグや要望を書き込む掲示板
→
書き込み(
#2419
)を編集する:
名前
タイトル
本文
【症状】MCIオブジェクトで動画が再生できない 【再現方法】 ■MCIオブジェクト ・ファイル ←ファイル設定 →ファイル取得 ・表示先ハンドル ←表示H設定 →表示H取得 ・X ←X設定 →X取得 ・Y ←Y設定 →Y取得 ・W ←W設定 →W取得 ・H ←H設定 →H取得 ・タイムフォーマット ←TF設定 →TF取得 #{ms(ミリ秒)|msf(mm:ss:ff)|tmsf(t:mm:ss:ff)} ・長さ →長さ取得 ・状態 ←状態設定 →状態取得 #{再生,playing|停止,stoped|一時停止,paused} ・位置 ←位置設定 →位置取得 ・ミュート ←ミュート設定 →ミュート取得 ・音量 ←音量設定 →音量取得 ・右音量 ←右音量設定 →右音量取得 ・左音量 ←左音量設定 →左音量取得 ・速さ ←速さ設定 →速さ取得 ・ループ{=0} ・元サイズ →元サイズ取得 ・{非公開}動画か(V)~OR(V=「.avi」,OR(V=「.mpg」,OR(V=「.mpeg」,OR(V=「.wmv」,V=「.mov」)))) ・範囲再生(AからBの)~ もし、ループがオンなら「play {名前} repeat from {A} to {B}」をMCI送信。 違えば「play {名前} from {A} to {B}」をMCI送信。 ・{非公開}ファイル設定(FILE)~ もし、Fファイルが空でなければ名前をMCI閉じる もし、(FILEが存在)でなければ「ファイルが存在しません」でエラー発生 「open "{FILE}" alias "{名前}" type mpegvideo」をMCI送信。 FファイルはFILE もし、動画か(Fファイルから拡張子抽出)なら 元サイズ取得。 FWは_[2] FHは_[3] ・{非公開}F表示H ・{非公開}表示H設定(V)~ もし、動画か(Fファイルから拡張子抽出)なら もし、Fファイルが空でなければ 「window {名前} handle {V}」をMCI送信。 F表示H=V 違えば、「ファイルが動画ではありません」でエラー発生 ・{非公開}表示H取得~ それ=F表示H ・{非公開}FX{=0} ・{非公開}FY{=0} ・{非公開}FW{=0} ・{非公開}FH{=0} ・{非公開}X設定(V)~ もし、動画か(Fファイルから拡張子抽出)なら もし、Fファイルが空でなければ 「put {名前} destination at {V} {Y} {W} {H}」をMCI送信。 FX=V 違えば、「ファイルが動画ではありません」でエラー発生 ・{非公開}X取得~それ=FX ・{非公開}Y設定(V)~ もし、動画か(Fファイルから拡張子抽出)なら もし、Fファイルが空でなければ 「put {名前} destination at {X} {V} {W} {H}」をMCI送信。 FY=V 違えば、「ファイルが動画ではありません」でエラー発生 ・{非公開}Y取得~それ=FY ・{非公開}W設定(V)~ もし、動画か(Fファイルから拡張子抽出)なら もし、Fファイルが空でなければ 「put {名前} destination at {X} {Y} {V} {H}」をMCI送信。 FW=V 違えば、「ファイルが動画ではありません」でエラー発生 ・{非公開}W取得~それ=FW ・{非公開}H設定(V)~ もし、動画か(Fファイルから拡張子抽出)なら もし、Fファイルが空でなければ 「put {名前} destination at {X} {Y} {W} {V}」をMCI送信。 FH=V 違えば、「ファイルが動画ではありません」でエラー発生 ・{非公開}H取得~それ=FH ・{非公開}元サイズ取得~ もし、動画か(Fファイルから拡張子抽出)なら もし、Fファイルが空でなければ 「where {名前} source」をMCI送信。 「 」で区切る。 違えば、「ファイルが動画ではありません」でエラー発生 ・閉じる~ もし、Fファイルが空でなければ名前をMCI閉じる。 Fファイルは空。 ・{非公開}Fファイル ・{非公開}ファイル取得~それはFファイル ・{非公開}状態取得~ もし、Fファイルが空でなければ「status {名前} mode」をMCI送信。 違えば、それは空 ・{非公開}状態設定(V)~ もし、Fファイルが空でなければ もし、OR(V=「playing」,V=「再生」)なら もし、自身→ループ=1なら「play {名前} repeat」をMCI送信。 違えば「play {名前}」をMCI送信。 もし、OR(V=「stoped」,V=「停止」)なら名前をMCI停止 もし、OR(V=「paused」,V=「一時停止」)なら「pause {名前}」をMCI送信。 ・{非公開}TF設定(V)~「set {名前} time format {V}」をMCI送信。 ・{非公開}TF取得~「status {名前} time format」をMCI送信。 ・{非公開}位置設定(V)~ もし、Fファイルが空でなければ F状態は状態 Vで条件分岐 「始め」なら「seek {名前} to start」をMCI送信。 「終わり」なら「seek {名前} to end」をMCI送信。 違えば「seek {名前} to {V}」をMCI送信。 状態は「{F状態}」 ・{非公開}位置取得~ もし、Fファイルが空でなければ「status {名前} position」をMCI送信。 違えば、それ=0 ・{非公開}音量設定(V)~ もし、Fファイルが空でなければ「setaudio {名前} volume to {V}」をMCI送信。 ・{非公開}音量取得~ もし、Fファイルが空でなければ「status {名前} volume」をMCI送信。 違えば、それ=1000 ・{非公開}右音量設定(V)~ もし、Fファイルが空でなければ「setaudio {名前} right volume to {V}」をMCI送信。 ・{非公開}右音量取得~ もし、Fファイルが空でなければ「status {名前} right volume」をMCI送信。 違えば、それ=1000 ・{非公開}左音量設定(V)~ もし、Fファイルが空でなければ「setaudio {名前} left volume to {V}」をMCI送信。 ・{非公開}左音量取得~ もし、Fファイルが空でなければ「status {名前} left volume」をMCI送信。 違えば、それ=1000 ・{非公開}Fミュート{=0} ・{非公開}ミュート設定(V)~ もし、Fファイルが空でなければ もし、Vが1なら 「set {名前} audio all off」をMCI送信。 Fミュート=1 違えば 「set {名前} audio all on」をMCI送信。 Fミュート=0 ・{非公開}ミュート取得~それ=Fミュート ・{非公開}速さ設定(V)~ もし、Fファイルが空でなければ「set {名前} speed {V}」をMCI送信。 ・{非公開}速さ取得~ もし、Fファイルが空でなければ「status {名前} speed」をMCI送信。 違えば、それ=1000 ・{非公開}長さ取得~「status {名前} length」をMCI送信。 ●窓位置右下移動({グループ=?母艦}OBJを) Pとは整数 P=タスクバー位置取得。 OBJについて もし、P=「左」ならば、X=デスクトップW-デスクトップワークエリアW 違えば、X=デスクトップワークエリアW-W もし、P=「上」ならば、Y=デスクトップH-デスクトップワークエリアH 違えば、Y=デスクトップワークエリアH-H。 #----------------------------------------------------------------------- !APPBARDATA_TYPE=「long,long,long,long,long,long,long,long,long」 ■APPBARDATA ・cbSize #{=36} #TEST ・hWnd ・uCallbackMessage ・uEdge ・Left ・Top ・Right ・Bottom ・lParam PACK(APPBARDATA,AB_DAT,APPBARDATA_TYPE)。 #--------------------------------------- ●タスクバー位置取得 もし、SHAppBarMessage(5,AB_DAT)ならば UNPACK(AB_DAT,APPBARDATA,"long,long,long,long") #グループに戻す TMPはAPPBARDATAのuEdge TMPで条件分岐 「0」ならば、「左」で戻る。 「1」ならば、「上」で戻る。 「2」ならば、「右」で戻る。 「3」ならば、「下」で戻る。 違えば、「関数戻りエラー」という。 #----------------------------------------------------------------------- ●SHAppBarMessage(ID,{参照渡し}p)=DLL("shell32.dll", "BOOL SHAppBarMessage( LONG dwMessage, //タスクバー位置:&H5 LPPOINT pData )") #http://www.winapi-database.com/Program/Shell/SHAppBarMessage.html #----------------------------------------------------------------------- start=1 ●母艦設計 母艦のスタイルは「ツールウィンドウ」 母艦の可視はオフ 母艦はDtunes動画プレーヤー 別画面とはフォーム #★★ここに移動 その親部品は母艦 そのスタイルは「枠なし」 #★★追加 その表示 #★★追加:無くてもMCIで表示されるみたいだが念のため 最大化 母艦について 閉じた時は~テストを閉じる 母艦の可視はオン テストとはMCIオブジェクト。 管理者権限取得 「player.ini」を読む 再生ファイル=それ 再生ファイルを動画再生 #●関数 母艦を中央移動 ●動画再生(Fを) #テストの状態は「停止」 #★追加:念のため テストのファイルはF #テストのファイル設定 テストの表示先ハンドルは別画面のハンドル #★★括弧は不要。文字列でエラーになります 動画サイズ設定 #●関数 テストの状態は「再生」 ●動画サイズ設定 SIZEとは配列=テストの元サイズ #ローカル変数 別画面のクライアントHはSIZE[3] #★★追加 別画面のクライアントWはSIZE[2] #★★追加 2回 #★★追加:スクロールバー回避用に二回行います(おまじないみたいなものです) 母艦のクライアントWはSIZE[2] 母艦のクライアントHはSIZE[3] #ここまで これで、 [エラー] ■MCIオブジェクト.nako.bak(91): 関数『MCI送信』の実行中にエラーが起きました。不正な浮動小数点数演算命令(関数) [エラー] 評価式(0): (文) [エラー] ■MCIオブジェクト.nako.bak(90): (もし) [エラー] ■MCIオブジェクト.nako.bak(89): (もし) [エラー] ■MCIオブジェクト.nako.bak(88): (もし) [エラー] ■MCIオブジェクト.nako.bak(87): (関数定義) [エラー] ■MCIオブジェクト.nako.bak(210): (代入) [エラー] ■MCIオブジェクト.nako.bak(205): (関数定義) [エラー] ■MCIオブジェクト.nako.bak(202): 関数『動画再生』の実行中にエラーが起きました。(関数) このようなエラーが確認されています。 【要望】正直、なでしこの中身に詳しいわけではないので、とりあえずWindows10で再生できればいいです。 【バージョン】1.550 【その他】 (attach:2419-.png)
優先度
低
中
高
緊急
状態
未処理
詳細求む!
調査中
議論中
修正中
確認待ち
再修正依頼
解決
---
重複
---
アイデア
感想
告知
感謝
確認キー
👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。
編集キー
編集時に使うキーを入力(省略可能)
添付ファイル
🎁
ファイルを選択...
画像ファイル(最大300KB)を添付可能