2013-02-01 10 views
8

iOSにも対応しているアンドロイドアプリを開発中です。私はオーディオを&で録音して、AndroidやiOSデバイスで再生したいと考えています。私はiOS 5+でアンドロイドから録音したオーディオファイルを再生できない

//audioRecorder is object of AVAudioRecorder 

NSMutableDictionary *recordSettings = [[NSMutableDictionary alloc] initWithCapacity:10]; 
    NSNumber *formatObject; 
    formatObject = [NSNumber numberWithInt: kAudioFormatMPEG4AAC ]; 

    [recordSettings setObject:formatObject forKey: AVFormatIDKey]; 
    [recordSettings setObject:[NSNumber numberWithFloat:44100.0] forKey: AVSampleRateKey]; 
    [recordSettings setObject:[NSNumber numberWithInt:1] forKey:AVNumberOfChannelsKey]; 
    [recordSettings setObject:[NSNumber numberWithInt:12800] forKey:AVEncoderBitRateKey]; 
    [recordSettings setObject:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey]; 
    [recordSettings setObject:[NSNumber numberWithInt: AVAudioQualityHigh] forKey: AVEncoderAudioQualityKey]; 

    NSURL *soundFileURL = [NSURL fileURLWithPath:[self soundFilePath]]; 

    NSError *error = nil; 
    audioRecorder = [[ AVAudioRecorder alloc] initWithURL:soundFileURL settings:recordSettings error:&error]; 

    if ([audioRecorder prepareToRecord] == YES){ 
     [audioRecorder record]; 
    }else { 
     int errorCode = CFSwapInt32HostToBig ([error code]); 
     NSLog(@"Error: %@ [%4.4s])" , [error localizedDescription], (char*)&errorCode); 

    } 

私はそれがAndroidデバイスで正しく再生されているオーディオ&を記録することができますが、以下のように設定がされている、以下の設定のiOS側で

MediaRecorder audioRecorder = new MediaRecorder(); 
audioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 
audioRecorder.setAudioSamplingRate(44100); 
audioRecorder.setAudioChannels(1); 
audioRecorder.setAudioEncodingBitRate(12800); 
audioRecorder.setOutputFile(<recordedSoundFilePath>); 
audioRecorder.prepare(); 
audioRecorder.start(); 

を使用してアンドロイドでオーディオを録音しています。 問題はAndroidデバイスのiOSから録音したオーディオを再生できますが、iOSデバイスはAndroidデバイスに記録されたオーディオを再生できません。それはOSStatus error 1937337955を返します。私はこのエラーについて検索しましたが、何も見つかりませんでした。

誰かが私のコードで何がうまくいかないのか教えていただけますか?

どのようなヘルプも高く評価されます。前もって感謝します。

+1

PrvN:それは解決されていますか? – muthukumar

+0

@PrvN:それは解決されますか?私も同じ問題があります。 – Jacky

答えて

0

は、このいずれかを試してみてください。

audioRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT); 
audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
+0

返信いただきありがとうございます。しかし、我々はAAC AudioEncoderが欲しい。私は、AudioSourceをMICからDefaultに変更しようとしましたが、それは役に立ちません。 – PrvN

+0

どこのアプリでレコードファイルを再生しているのですか?または携帯電話のプレーヤーを介してsdcardファイル? –

+1

ファイルはAndroidアプリやプレーヤーでも再生できますが、再生はできません。 – PrvN

0

それはコーデックの問題である、iOS版によって記録フォーマットはそれだけにしてIOS側のオーディオファイルをデコード動作させるためには、Androidのメディアプレーヤーによってできデコードではありませんmp3やmp4、3GpなどのAndroid対応フォーマット。

+0

私もあなたに同意します(Android_Craker)。私はすでにこの種の問題に直面しています。唯一の解決策はアンドロイド対応のフォーマット、つまりmp3、mp4、3gp、wavなどでオーディオファイルを生成することです。 – Shailendra

関連する問題