操作 Wave 檔案(2): 判斷一個檔案是否是 Wave 檔案

Wave 檔案的前 12 個位元組可以這樣描述:TRiff = record ckId : DWORD; {'RIFF'} ckSize : DWORD; {檔案大小, 不包括前 8 個位元組} fccType : DWORD; {'WAVE'}end;我們讀出檔案的前 12 個位元組進行判斷, 就基本可以確認它是不是 Wave 檔案.uses MMSystem, IOUtils; {這裡準備用 IOUtils.TFile.OpenRead 方便地建立檔案流}procedure

關於動態數組指標操作的兩個例子

最近突然感覺 Delphi 的動態數組非常好用, 善用它可以省略很多 GetMem、ReallocMem; 並且它是被自動維護的.動態陣列變數 arr 本身就是指標, 不能再用 @arr 擷取;但要擷取某個元素位置的指標, 應該是 @arr[x]; 但隨著數組的再分配, 這個地址是變化的.//動態數組地址測試var i: Integer; arr: TBytes; p: PByte;begin SetLength(arr, 5); for i := 0 to 4 do arr[i] :

使用 IXMLHTTPRequest 簡單擷取網頁原始碼

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); end;var Form1:

操作 Wave 檔案(3): 接觸 mmio 系列函數

mmio 系列函數用於 Wave 等多媒體檔案的 I/O 操作, 相關函數有:mmioOpenmmioClosemmioReadmmioWritemmioFlushmmioSeekmmioRenamemmioGetInfommioSetInfommioCreateChunkmmioAscendmmioDescendmmioAdvancemmioSetBuffermmioStringToFOURCCmmioSendMessagemmioInstallIOProcmmio 系列函數比一般的 I/O

操作 Wave 檔案(11): 使用 waveIn…函數錄製 wav 檔案

使用視窗接受音訊裝置發出的訊息:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; procedure

將字串轉換成 UTF8 編碼的函數

這種轉換一般用於網頁地址; 我不知道 Delphi 是不是有現成的函數, 用到了就寫了一個.//函數:function ToUTF8Encode(str: string): string;var b: Byte;begin for b in BytesOf(UTF8Encode(str)) do Result := Format('%s%%%.2x', [Result, b]);end;//測試:var str: string;begin str := '萬一'; str :=

操作 Wave 檔案(4): 擷取 Wave 檔案主塊與子塊的資訊

有兩個相關的結構體: TMMIOInfo、TMMCKInfo.TMMIOInfo 是多媒體檔案開啟後的狀態資訊, mmioOpen 函數的第二個參數就是這個結構的指標.現在先用到了 TMMCKInfo, 這是檔案內部 "塊" 的資訊, 構成如下:TMMCKInfo = record ckid: FOURCC; {塊標識} cksize: DWORD; {塊大小} fccType: FOURCC; {格式類型標識} dwDataOffset: DWORD;

操作 Wave 檔案(12): 使用 waveOut…重複播放 wav 檔案

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; procedure FormCreate(Sender:

JSON 之 SuperObject(15): 執行個體 – 類比 Google 搜尋

本例測試:代碼檔案:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Memo1: TMemo; Edit1: TEdit; Button1: TButton; procedure Button1Click(Sender:

操作 Wave 檔案(5): 擷取 Wave 檔案的格式資訊

裝載格式資訊的結構有:TWaveFormat = packed record wFormatTag: Word; nChannels: Word; nSamplesPerSec: DWORD; nAvgBytesPerSec: DWORD; nBlockAlign: Word;end;TPCMWaveFormat = record wf: TWaveFormat; wBitsPerSample: Word;end;TWaveFormatEx = packed record

JSON 之 SuperObject(16): 執行個體 – 解析 Google 關鍵字搜尋排名

同上例類似, 通過 'http://clients1.google.cn/complete/search?&q=' + "關鍵字" 可以擷取 Google 的關鍵字搜尋排名.我用 Delphi 為關鍵字得到的結果是:window.google.ac.h( ["Delphi",[ ["delphi 教程", "375,000 結果", "0"], ["delphi盒子", "74,900 結果", "1"], ["delphi 下載", "1,580,000

操作 Wave 檔案(6): 擷取 Wave 檔案的波形資料

讀取函數及測試代碼:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end;var Form1:

JSON 之 SuperObject(17): 執行個體 – 借用 Google 實現全文翻譯

調用 Google 翻譯的地址格式:http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" + 原始文本 + "&langpair=" + 原語言 + "%7C" + 目標語言返回的資料格式如下, 可以用 responseData.translatedText 簡單擷取:{ "responseData" : {"translatedText" : "返回的文本"},

幾個和當前路徑相關的新函數

偶然從 SysUtils 裡發現了幾個路徑相關的函數, 以前沒見過, 可能是 2010 新增的:GetLocaleDirectory();GetLocaleFile();LocaleDirectoryExists();LocaleFileExists();應用測試:uses IOUtils;procedure TForm1.FormCreate(Sender: TObject);var p,f: string; b: Boolean;begin {設定與擷取當前路徑}

操作 Wave 檔案(7): 建立一個空的 Wave 檔案(三種方法)

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); end;var Form1: TForm1;implementation{$R *.dfm}uses MMSystem;//chan:

系統預設語言與系統支援的語言列表

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton;

操作 Wave 檔案(8): 使用 TMediaPlayer 錄製 wav 檔案

TMediaPlayer 錄音是基於一個已存在的 wav 檔案, 上次建立空白 wav 的函數可派上用場了.TMediaPlayer 的功能是基於 MCI 的, 都是該淘汰的東西了, 只是簡單瞭解下.接下來還要學慣用 waveIn...系列函數錄音、用 DirectSound 錄音.unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

操作 Wave 檔案(1): 關於 Wave 檔案的基礎知識與檔案格式

最近準備學習 DirectSound、DirectMusic、DirectShow, 但剛一接觸就碰到了關於 Wave 檔案的諸多問題, 只好先回頭學學 Wave 檔案.Wave 檔案的基礎知識經常見到這樣的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等.44100HZ 16bit stereo : 每秒鐘有 44100 次採樣, 採樣資料用 16 位(2位元組)記錄, 雙聲道(立體聲);22050HZ 8bit mono : 每秒鐘有 2205

操作 Wave 檔案(9): 使用 waveOut… 函數播放 wav 檔案

下面是使用低級音頻函數播放 wav 的兩個方法, 對這個感興趣的人恐怕很少, 免注釋了.使用視窗接受音訊輸出裝置的訊息:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure

操作 Wave 檔案(10): 輸入輸出裝置與格式支援

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) ListBox1: TListBox; ListBox2: TListBox; Button1: TButton; Button2: TButton; procedure

總頁數: 61357 1 .... 4754 4755 4756 4757 4758 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.