1、 aiff container概念:
2)aiff應用於個人電腦及其它電輔音響裝置以儲存**資料;
3)aiff支援ace2、ace8、mac3和mac6壓縮,支援16位44.1khz立體聲;
2、aiff container規範:
3)local chunk types(本地塊型別):
有兩種型別的塊,一種是必需的,另一種是可選的。公共塊是必需的。如果取樣的聲音長度大於零,則需要聲音資料塊。所有其他塊都是可選的。所有使用表單aiff的應用程式都必須能夠讀取所需的塊,並且可以選擇選擇性地忽略可選塊。複製form aiff的程式應該複製foem aiff中的所有塊。
4)common chunk(公共塊):
公共塊描述取樣聲音的基本引數,定義如下:
#define commonid 'comm' /* ckid for common chunk */
typedef struct commonchunk;
ckid總是「comm」。cksize是塊的資料部分的大小,以位元組為單位。
它不包括ckid和cksize使用的8個位元組。對於普通塊,cksize總是18。
numchannels包含聲音的音訊通道的數量。值1表示單聲道聲音,值2表示立體聲,值4表示四聲道聲音,等等。可以表示任何數量的音訊通道。
實際的聲音樣本儲存在另乙個塊中,即聲音資料塊。對於多通道聲音,每個通道的單取樣點是交錯的。 一組交錯的樣本點稱為樣本幀。
對於單聲道聲音,乙個取樣幀是乙個單取樣點。
numsampleframes包含sound data chunk中的樣本幀數。numsampleframes是樣本幀的數量,而不是sound data chunk中的位元組數和取樣點數。檔案中的取樣點總數為numsampleframes的numchannels倍。
samplesize是每個取樣點中的位數。它可以是1到32之間的任何數字。
samplerate是聲音被回放的取樣率,以每秒取樣幀數為單位。
每個form aiff都只需要乙個公共塊。
5)sound data chunk(聲音資料塊):
聲音資料塊包含實際的樣本幀。
#define sounddataid 'ssnd' /* ckid for sound data chunk */
typedef struct sounddatachunk;
ckid總是'ssnd'。
cksize是塊的資料部分的大小,以位元組為單位。它不包括ckid和cksize使用的8個位元組。
offset確定sounddata中第乙個樣本幀的開始位置。offset以位元組為單位。大多數應用程式不會使用偏移量,應將其設定為零。
blocksize與偏移量一起用於塊對齊聲音資料。它包含聲音資料對齊到的塊的位元組大小。與偏移量一樣,大多數應用程式不會使用塊大小,應該將其設定為零。
sounddata包含組成聲音的示例幀。sounddata中的樣本幀數由common chunk中的numsampleframes引數確定。
6)marker chunk(標記塊)
標記塊包含指向聲音資料中位置的標記。標記可用於應用程式所需的任何目的。
標記具有一下格式:
typedef short markerid;
typedef struct marker;
id是唯一標識form aiff中標記的數字。id可以是任何正的非零整數,只要同一form aiff中的其他標記沒有相同的id。
標記在聲音資料中的位置由position確定。標記在概念上落在兩個樣本幀之間。位置的單位為幀而不是位元組。
/*前面的8是什麼*/markername是乙個帕斯卡風格的文字字串,包含標記的名稱。
標記塊內資料的格式如下所示。
#define markerid 'mark' /* ckid for marker chunk */
typedef struct markerchunk;
ckid總是「mark」。
cksize是塊的資料部分的大小,以位元組為單位。它不包括ckid和cksize使用的8個位元組。
nummarker是標記塊中的標記數量。
7)instrument chunk(儀器塊):
instrument chunk定義了儀器(如取樣器)可用於回放聲音資料的基本引數。
聲音資料可以迴圈,允許重複聲音的一部分以延長聲音。下面的結構描述了乙個迴圈:
typedef struct loop;
playmode指定要執行哪種型別的迴圈。
#define nolooping 0
#define forwardlooping 1
#define forwardbackwardlooping 2
如果指定了nolooping,那麼在回放期間將忽略迴圈點。
beginloop是乙個markerid,用於標記迴圈段的開始位置。
參考:
格式與規範
格式與規範 用來格式程式 的基本技術是換行,空格符和縮排及利用注釋來解釋 的作用功能等.分行符 換行符 即底線 前加空格,使用它可以使用程式 不會延伸到 程式 視窗右邊緣以外的地方,容易檢視 空行 空格符 它用來區分每個不同的邏輯塊.縮排它用來凸顯程式的結構,至於縮排多少,如何縮排,這個沒有根本性的...
URL格式規範
先記錄下,以便以後使用。一 格式說明 表示隔開的兩部分只能出現其中乙個,方括號括起來的表示可選,文字由雙引號 括起來,以n 開頭表示至少n個或更多的,n的預設值為0。二 總體格式 genericurl scheme schemepart scheme 1 lowalpha digit schemep...
RESTful格式規範
restful是介面開發格式裡面很重要的乙個山頭,基本開發介面都需要遵守這個規範,它共有十條規範格式 1 網域名稱,一般將api放在組網域名稱下 3 路徑,路徑表示api的具體 代表一種資源,中不能使用動詞,只能使用名詞,而其必須是複數 4 使用標準的http方法,由http動詞組成 get sel...