HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0804
ぱおGIFの再生速度をmciで変更する方法2解決


ぱお

リンク

2020/8/4(Tue) 14:27:52|NO.91122

データの読み込み時などに表示するプログレスバーのようなものをGIFアニメーションで
行おうと思い、Kpanさんのmciを使用する方法を試したのですが、GIFのアニメーション速度が
本来の速度よりとても遅くなっていました。
そこで、mciの再生速度を変更する方法を試したのですが、うまくいきませんでした。

過去スレをあさってみて、GDI?というものを使えばできると聞いたのですが、サンプルソースを
見た感じとてもややこしかったので、mciを使った方法でGIFの再生速度が変更できればと思い質問します。

mciではGIFの再生速度の変更は無理なのでしょうか...それともmciの再生速度の変更方法が間違っているのでしょうか...



この記事に返信する


あらや

リンク

2020/8/10(Mon) 23:11:04|NO.91151

>それともmciの再生速度の変更方法が間違っているのでしょうか
ソースを見ていないので間違っているかどうかが分かりませんが
mciでGIFの再生速度の変更というのは基本的には無理だと思った方が良いです。

少々強引な方法ですが、
Kpanさんのソースを改変して
経過時間を取得して再生位置がズレていたら
時間に合わせて再生位置を設定するという手法でやってみました。

; MCIによるGIFファイル表示サンプルソース (by Kpan) [HSP2/3] ///////////////////////////////////追加///////////////////////////////////////////////////////////// #uselib "kernel32.dll" #func GetTickCount "GetTickCount" //////////////////////////////////////////////////////////////////////////////////////////////////// onexit *exit dialog "gif;*.jpg", 16, "画像ファイル" if stat = 0 : stop mci "open \""+refstr+"\" alias A wait type mpegvideo style child parent "+hwnd+"" mci "put A window at 50 100 0 0" ///////////////////////////////////追加///////////////////////////////////////////////////////////// mci "set A time format ms"; // 時間フォーマットをミリ秒単位にする mci "status A length"; // 全体の長さを取得 all_ms = stat; //////////////////////////////////////////////////////////////////////////////////////////////////// mci "play A repeat" ///////////////////////////////////追加///////////////////////////////////////////////////////////// time_s = GetTickCount(); // 再生開始時間を取得 *playing mci "status A position"; // 現在のシーク位置を取得 seek_pos = stat; time_n = GetTickCount() - time_s; // 再生してからの経過時間を取得 if( seek_pos != time_n ) { // 経過時間とシーク位置が合わない場合 if( time_n >= all_ms ) { // ループ時は再生開始時間を再取得 time_s = GetTickCount(); } else { // シーク位置を経過時間に合わせる seek_pos = time_n; mci "seek A to "+seek_pos; } } await 10; goto *playing; //////////////////////////////////////////////////////////////////////////////////////////////////// *exit mci "close A" end
Kpanさんのコメントはほぼ削除して
追加した箇所だけコメントを入れておきました。

欠点としては時間を取得するときの精度が低い事と、
アニメーションをスキップする可能性があるので
場合によってはカクカクして見えることがあるかもしれません。



ぱお

リンク

2020/8/12(Wed) 12:52:05|NO.91155

>mciでGIFの再生速度の変更というのは基本的には無理だと思った方が良いです。
なるほど...あきらめるしかないですね(´;ω;`)

サンプルソースありがとうございます!!
試しにgifを再生してみたのですが、やっぱり本来よりかは遅くなってしまいますね...

mciでのGIFファイル再生についてはあきらめることにします。
今回はありがとうございました!



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.91122への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

ONION software Copyright 1997-2018(c) All rights reserved.