关于这个函数
function TBCMemFileStream.SetPointer(APos: LONGLONG): HResult;
begin
  if (APos < 0) or (APos > FLength) then
  Result := S_FALSE
  else begin
  FPosition := APos;
  Result := S_OK;
  end;
end;每当开始播放MV时,第一次的APos的值都是256K,我如何使它变为512K呢?

解决方案 »

  1.   

    不明白你的意思,APos不是参数吗?你想传多少就是多少啊
      

  2.   

    APos不是我能传进去的
    应该是在UAsyncIo单元里的Request这个函数传过来的,但是我就是找不到这个值产生的源头
      

  3.   

    是有源程序,就是查到UAsyncIo单元就查不出来了,很是郁闷
      

  4.   

    理论上来说应该是IMediaSample接口中的function GetPointer(out ppBuffer: PBYTE): HResult; stdcall;可是这个函数不能从delphi里面修改由于有些歌曲文件如果只读256K的话,只能解码出视频的outpin,音频解析不出来,当第一个流读512K时才能解出音频的outpin