2014-03-26 40 views
0

我用AVAudioRecorder記錄並保存到一個文件audio.m4a使用這些設置對輸出文件的效果:AVAudioRecorder設置沒有采取

NSMutableDictionary *recordSetting = [[NSMutableDictionary alloc] init]; 
    [recordSetting setValue:[NSNumber numberWithInt:AVAudioQualityMin] forKey:AVEncoderAudioQualityKey]; 
    [recordSetting setValue:[NSNumber numberWithInt:kAudioFormatMPEG4AAC] forKey:AVFormatIDKey]; 
    [recordSetting setValue:[NSNumber numberWithInt:16] forKey:AVEncoderBitRateKey]; 
    [recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey]; 
    [recordSetting setValue:[NSNumber numberWithInt: 1] forKey:AVNumberOfChannelsKey]; 
    [recordSetting setValue:[NSNumber numberWithInt:8] forKey:AVLinearPCMBitDepthKey]; 

但是當我用一個軟件來讀取音頻屬性.m4a的文件,我得到了這些:

比特率:64kbps的

通道:2

因此,這意味着上述設置不會影響輸出文件,因爲很明顯,我將其比特率設置爲16,並將通道設置爲1.我是否錯過了這些設置?

回答

3

問題是,並非每個設置都是合法的,非法設置默默失敗。所以在這種情況下,16的比特率太低了。從某種意義上說,這個系統正在幫你一個忙。而不是barfing,它正在製作錄音,但它取代了您所提供的合法設置。

+0

這是否意味着我不能改變頻道呢? – JozackOverFlow

+1

我不知道合法錄製設置是什麼。我不知道他們是否有記錄。這是整個問題。 – matt

+0

你知道iOS的其他錄音機嗎?因爲AVAudioRecorder的文件大小對我來說太大了。我需要保存一個文件大小小於200KB的1分鐘記錄 – JozackOverFlow