ASFファイルの倍速再生


sop  2006-01-07 20:34:36  No: 19526

お世話になります。
現在DelphiXを利用してasfファイルの再生に取り組んでいるのですが
再生レートの変更がうまくいきません。

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs,ActiveX,DirectShow, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  hr:             HResult;
  pGraph:         IGraphBuilder;
  pMediaControl:  IMediaControl;
  pMediaPosition: IMediaPosition;
begin

  CoInitialize(nil);
  hr := CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC,
                             IID_IGraphBuilder, pGraph);
  hr := pGraph.QueryInterface(IID_IMediaControl, pMediaControl);
  hr := pGraph.QueryInterface(IID_IMediaPosition, pMediaPosition);
  hr := pMediaControl.RenderFile('C:\TestModule\AsfTest\Proxy.asf');
  hr :=  pMediaPosition.put_Rate(2.0);
  pMediaControl.Run;

 MessageBox(Application.Handle, 'test', 'test', MB_Ok);

 pMediaControl._Release;
 pGraph._Release();

 CoUninitialize();

end;

end.

webの資料を参考に上記テストプログラムを作成したのですが
再生レートを設定する
hr :=  pMediaPosition.put_Rate(2.0);
の部分で引数に倍速として2.0を設定するのですが戻り値が
80070057となります。
調べたところ「引数不正」らしいのですが何か指定方法に
問題があるのでしょうか。

*上記の設定で等速として1.0を指定すると、正常の戻り値が得られます。
*テストに使用しているasfファイルをWMPで再生したところ
  倍速再生は可能でしたので、ファイル側に問題は無いと思います。

ご指摘、ご指南のほどお願いします。

以上


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

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






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