2009-07-17 16 views
1

Iは、設定辞書は、次の値にiphone - AVAudioRecorderはモノラル再生を与える(ちょうど1チャンネルで再生している音)

でも
NSMutableDictionary *recordSetting = [[NSMutableDictionary alloc] init]; 

    [recordSetting setValue :[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey]; 
    [recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey]; 
    [recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey]; 

    [recordSetting setValue :[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey]; 
    [recordSetting setValue :[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey]; 
    [recordSetting setValue :[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey]; 

が含まれています(SDK 3.0を使用して)音声を録音し、WAVファイルに保存するAVAudioRecorderを使用していますチャンネル数を2に指定した後、再生はモノラル(つまり、両方のチャンネルではなく1つのイヤージャックでのみ再生)になります。

は誰にもこの問題に直面していますか? recordSetting辞書値に問題はありますか?

おかげ

は、誰もがこれで私を助けてください...私は2とチャンネル数を指定した場合、なぜ再生がちょうど1ジャックにでしょうか? (私はテストのためにヘッドフォンを使用しています - 私のiPhoneに付属のものを)

+0

@lostInTransit、これは外のコンテキストである:あなたのSOユーザーページ上の 'accounts'タブが遠右を通じてSU、SF多分メタでアカウントを関連付けることもできます。あなたの最新の質問はSUに移されました。 – nik

+0

nik、これはSUにどのように属するのか分かりません。これは、SDKを使用してサウンドを録音するときにAVAudioRecorderに設定する必要があるプロパティに関連しています。最後の質問をSUに移してくれてありがとう。 – lostInTransit

+0

Uh。私は申し訳ありませんが、コンテキスト外で、私はget-my-id-addressに関するあなたの最後の質問を意味しました。それはSUに移された。 – nik

答えて

1

をいいえ、何もあなたの設定で間違っていません。あなたのアプリをシミュレータで試してみると、2つのチャンネルで録音して再生します。しかし、iPhone 3Gと3GSは、1つのチャンネルを使用してオーディオを録音します。これは、3GSで撮影された映画の音声にも適用されます。

したがって、それはバグではありません。

+0

1つのチャンネルでの録音はOKです。再生時に2チャンネルで再生しないでください。音声メモでも2チャンネルの音声を再生します。 – lostInTransit

+0

iPhoneのボトムスピーカーとヘッドフォンで再生されるサウンドを区別したい場合があります。 3Gと3GSの両方のモデルでは、サウンドはスピーカー(ボイスメモとiPodアプリケーションの両方)を介して1つのチャンネルでのみ再生されます。左のラウドスピーカーを指で覆うことができます。正しい音が聞こえないことがわかります。ただし、ヘッドホンを接続すると、実際のステレオサウンドではないにしても、左右の両方のチャンネルから録音したボイスメモと音声が聞こえます。ヘッドフォンと同じチャンネルです! –

+0

私はそれほど確かではありません。私はあなたが言っていることを試しましたが、録音された音のためにただ1つのジャックからのオーディオを聞くことができます。ボイスメモについては、両方のヘッドフォンジャックから聞くことができます – lostInTransit

9

ただ、デフォルトの設定は動作するはずの次の行

[recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey]; 

をコメントアウト。この作品

の理由は、あなたが今、モノラルファイルを記録され、これが再生されている場合、モノラルファイルの正常な動作があるとして、音声が各スピーカーで再生されるということです。このラインを含めると、1つのチャンネルが完全に静かなステレオファイルが録音され、再生すると1つの耳にのみ音声が出力されます。

関連する問題