我一直在試圖傳遞和陣列到DiracLE音頻庫中的一個方法。聲音採樣的空浮點數**
數組看起來像這樣在調試器
- (OSStatus) readFloatsConsecutive:(SInt64)numFrames intoArray:(float**)audio withOffset:(long)offset
,填補了數組像這樣
if (audio) {
for (long c = 0; c < mExtAFNumChannels; c++) {
if (!audio[c]) continue; // this executes for both channels
// but doesnt proceed into next for loop
for (long v = 0; v < numFrames; v++) {
if (v < loadedPackets) audio[c][v+offset] = (float)data[v*mExtAFNumChannels+c]/32768.f;
else audio[c][v+offset] = 0.f;
}
}
}
我這樣稱呼它
[reader readFloatsConsecutive:frameCount intoArray:arrayToFill];
arrayToFill是當前函數範圍的參數
[self readAudioDataForFile:temp withArray:tempArray];
陣列最初傳遞到函數這樣
// this array was passed into the function as tempArray which is float **tempArray = NULL;
arrayToFill = (float **) malloc ((frameCount * channelCount) * sizeof(float));
正如我需要提取從文件的音頻數據在我的方法我已到那裏MALLOC陣列並把它傳遞到Dirac函數對於灌裝。我malloc像這樣arrayToFill = (float **) malloc ((frameCount * channelCount) * sizeof(float));
然後傳遞給dirac函數如前所述。
這個陣列可以是取決於信道計數
你是如何記錄它們的?用'%@'?因爲你應該使用正常的C'%f'作爲格式說明符。 – Jack 2012-07-22 03:51:09
我沒有使用它,它看起來像數組是空的,當它到達for循環來填充傳入的數組。如果(音頻)失敗,所以我沒有任何數組?我是否正確地配置了數組,因爲它看起來像在通過它不存在的兩個函數調用之後傳遞它。 – user773578 2012-07-22 03:55:00
@傑克 - 你的網站鏈接很好的遊戲。 :) – user773578 2012-07-22 03:56:33