再生位置取得(mciSendString)

解決


miya  2003-02-01 04:20:21  No: 2736

mciで音楽を再生しようとしています。
演奏/停止命令は一行だけで動作を確認出来たのですが
・mciSendString('play FILE', '', 0, 0) ;
・mciSendString('close FILE', '', 0, 0) ;

再生位置を取得する方法が今ひとつ分かりません
変数代入とか試みましたがうまく機能しません。
どうすればよいのか教えて下さい。
・t:=mciSendString('status FILE length','',0,0) ;

くだらない質問ですがよろしくお願いします。


たかみちえ  URL  2003-02-01 04:31:09  No: 2737

MCIコマンドは結構たくさんの量があります。
http://www.bekkoame.ne.jp/i/mr.manri/hsp.html
HSPのサイトですけど、ここに一覧があります。


miya  2003-02-01 18:48:09  No: 2738

質問の書き方がマズかったかもしれませんが、
HSPでは可能ですが、Delphiでの取得方法が分かりません。
HSPにはシステム変数(stat)に値が戻ってくるのですが
Delphiでの戻り値はどう取得すれば良いのでしょうか?

;hsp mp3
dialog "",16,""
mci "open \""+refstr+"\" alias FILE"
mci "play FILE from 0"
mci "status FILE length" : t=stat
mes t

stop


たかみちえ  URL  2003-02-01 19:12:19  No: 2739

Openなど、特に情報のないコマンド以外を送ったときの情報(Lengthなど)を得るには、
APIの二つ目の引数に文字列バッファを、第三引数にそのバッファの長さを入れて使います。
※文字列は普通のStringではないので、念のため
  Lengthなどは、StrToIntで変換できます。

  Delphiでやるには、mciSendStringよりmciSendCommandを使ったほうが早いし、
MediaPlayerコンポーネントを使ってもいいと思いますけど。


miya  2003-02-01 20:21:21  No: 2740

折角のご返事なのですが
初心者なんで理解できませんでした。
他力本願で申し訳ありませんが
再生方法(mciSendCommand)の簡単なサンプルを
提示して頂けるとありがたいのですが...。


たかみちえ  URL  2003-02-01 22:02:11  No: 2741

> 再生方法(mciSendCommand)の簡単なサンプルを
  わたしも知りません^^;

  ただ、mciSendStringをDelphiで使う場合、
引用符つきで、その場で文字列を指定した場合(PCharと同等の扱いで使える)を除いて、
String型はPCharにキャストしなければ使えません。
  なので、mciSendStringを多用すると、遅くなります。
  これは、確認済みです。

  素直にMediaPlayerコンポーネントを使ったほうが早いと思いますけど…。


miya  2003-02-01 22:13:52  No: 2742

そうですか.....。
色々とご無理を言いまして申し訳ありませんでした。
どうもありがとうございました。


部員弐号  URL  2003-02-22 22:21:36  No: 2743

知ってるので書いときます。
var
ret :array[0..70] of Char;
Pos:Integer;
を宣言しておいて
mciSendString('status audio1 position', ret, 70, 0);
audio1は、適当なデバイス名です。
retに、現在位置(秒)が入ります。
pos:=StrToInt(Strpas(ret));
とすれば、posの中に現在の位置が入ります。
分にしたければ
min:=pos div 60;
sec:=pos mod 60;
となります。


miya  2003-02-23 19:48:48  No: 2744

ご親切にありがとうございます。
提示サンプル参考にさせて頂きます。

"たかみちえ"さま
"部員弐号"さま
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加