zoukankan      html  css  js  c++  java
  • 操作 Wave 文件(3): 接触 mmio 系列函数


    mmio 系列函数用于 Wave 等多媒体文件的 I/O 操作, 相关函数有:

    mmioOpen
    mmioClose
    mmioRead
    mmioWrite
    mmioFlush
    mmioSeek
    mmioRename
    
    mmioGetInfo
    mmioSetInfo
    
    mmioCreateChunk
    mmioAscend
    mmioDescend
    mmioAdvance
    mmioSetBuffer
    
    mmioStringToFOURCC
    
    mmioSendMessage
    mmioInstallIOProc
    

    mmio 系列函数比一般的 I/O 函数更适合操作 RIFF 格式的多媒体文件, 主要是能更方便地操作 RIFF 的文件块, 官方还说它们更优化.

    和其他 I/O 函数一样, 它们也是要 Open 获取句柄, 然后读写, 最后关闭; 但它们文件句柄和其他 I/O 函数的句柄并不兼容, 不过部分函数(上面前 7 个)也可以用于一般文件的操作.

    就先操作个一般文件吧.

    uses MMSystem;
    
    procedure TForm1.FormCreate(Sender: TObject);
    const
      FilePath = 'C:\Temp\mm.txt';
    var
      hFile: HMMIO;
      str: RawByteString;
    begin
      hFile := mmioOpen(PChar(FilePath),              {要打开的文件}
                        nil,                          {接受 TMMIOInfo 结构信息的指针, 暂时没用到}
                        MMIO_CREATE or MMIO_READWRITE {打开选项; 这是建立并以读写权限打开}
                       );
      mmioWrite(hFile, 'Delphi', 6);      {写入 6 个字符}
    
      mmioSeek(hFile, 0, SEEK_SET);       {把读写指针移动到文件头}
    
      SetLength(str, 6);
      mmioRead(hFile, PAnsiChar(str), 6); {读出 6 个字符}
      ShowMessage(str);                   {Delphi}
    
      mmioClose(hFile, 0);                {关闭文件; 第二个参数还可以是 MMIO_FHOPEN, 另有它用}
    
      {最后再删除这个文件, 既然已删除就无需 Close 了}
      mmioOpen(PChar(FilePath), nil, MMIO_DELETE);
    end;
    
  • 相关阅读:
    Ubuntu 12.04下PostgreSQL-9.1安装与配置详解(在线安装) [转]
    network error:software caused connection abort
    MySQL数据库SQL修改数据规范
    常见的动物单词汇总
    PHP观察者模式
    PHP单例模式
    PHP工厂模式
    PHP面试准备
    Let Encrypt延期(转自虞大胆的叽叽喳喳)
    全球最昂贵的域名和国内著名的域名交易
  • 原文地址:https://www.cnblogs.com/del/p/1597462.html
Copyright © 2011-2022 走看看