녹음 된 오디오 파일을 iOS에서 .wav 형식으로 변환

프라 치 라지 푸트

오디오 파일을 녹음하고 .wav 형식으로 서버에 업로드하고 싶지만 레코더에서 파일을 wav 형식으로 녹음 할 수 없습니다.

녹음을 위해 다음 코드를 사용했습니다. NSMutableDictionary * recordSetting = [[NSMutableDictionary alloc] init];

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

// Initiate and prepare the recorder
recorder = [[AVAudioRecorder alloc] initWithURL:outputFileURL settings:recordSetting error:nil];
recorder.delegate = self;
recorder.meteringEnabled = YES;
[recorder prepareToRecord];

내가 찾은 또 다른 방법은 녹음 후 파일을 caff에서 wav로 변환하지만 이것은 나를 위해 작동하지 않습니다.

caff에서 wav로 파일을 변환하는 코드를 사용했습니다.

  -(BOOL)exportAssetAsWaveFormat:(NSURL*)filePath
    {
  NSError *error = nil ;

  NSDictionary *audioSetting = [NSDictionary dictionaryWithObjectsAndKeys:
                              [ NSNumber numberWithFloat:44100.0], AVSampleRateKey,
                              [ NSNumber numberWithInt:2], AVNumberOfChannelsKey,
                              [ NSNumber numberWithInt:16], AVLinearPCMBitDepthKey,
                              [ NSNumber numberWithInt:kAudioFormatLinearPCM], AVFormatIDKey,
                              [ NSNumber numberWithBool:NO], AVLinearPCMIsFloatKey,
                              [ NSNumber numberWithBool:0], AVLinearPCMIsBigEndianKey,
                              [ NSNumber numberWithBool:NO], AVLinearPCMIsNonInterleaved,
                              [ NSData data], AVChannelLayoutKey, nil ];

//  NSString *audioFilePath = filePath;
AVURLAsset * URLAsset = [[AVURLAsset alloc]  initWithURL:recorder.url options:nil];

if (!URLAsset) return NO ;

AVAssetReader *assetReader = [AVAssetReader assetReaderWithAsset:URLAsset error:&error];
if (error) return NO;

NSArray *tracks = [URLAsset tracksWithMediaType:AVMediaTypeAudio];
if (![tracks count]) return NO;

AVAssetReaderAudioMixOutput *audioMixOutput = [AVAssetReaderAudioMixOutput
                                               assetReaderAudioMixOutputWithAudioTracks:tracks
                                               audioSettings :audioSetting];

if (![assetReader canAddOutput:audioMixOutput]) return NO ;

[assetReader addOutput :audioMixOutput];

if (![assetReader startReading]) return NO;



NSString *title = @"WavConverted";
NSArray *docDirs = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [docDirs objectAtIndex: 0];
NSString *outPath = [[docDir stringByAppendingPathComponent :title]
                     stringByAppendingPathExtension:@"wav" ];

NSURL *outURL = [NSURL fileURLWithPath:outPath];
AVAssetWriter *assetWriter = [AVAssetWriter assetWriterWithURL:outURL
                                                      fileType:AVFileTypeWAVE
                                                         error:&error];
if (error) return NO;

AVAssetWriterInput *assetWriterInput = [ AVAssetWriterInput assetWriterInputWithMediaType :AVMediaTypeAudio
                                                                            outputSettings:audioSetting];
assetWriterInput. expectsMediaDataInRealTime = NO;

if (![assetWriter canAddInput:assetWriterInput]) return NO ;

[assetWriter addInput :assetWriterInput];

if (![assetWriter startWriting]) return NO;




[assetWriter startSessionAtSourceTime:kCMTimeZero ];

dispatch_queue_t queue = dispatch_queue_create( "assetWriterQueue", NULL );

[assetWriterInput requestMediaDataWhenReadyOnQueue:queue usingBlock:^{

    NSLog(@"start");

    while (1)
    {
        if ([assetWriterInput isReadyForMoreMediaData]) {

            CMSampleBufferRef sampleBuffer = [audioMixOutput copyNextSampleBuffer];

            if (sampleBuffer) {
                [assetWriterInput appendSampleBuffer :sampleBuffer];
                CFRelease(sampleBuffer);
            } else {
                [assetWriterInput markAsFinished];
                break;
            }
        }
    }

    [assetWriter finishWriting];


    NSLog(@"finish %@",assetWriter);
}];
return YES;
//  dispatch_release(queue);
}

미리 감사드립니다.

어떤 도움이라도 정말 감사하겠습니다.

써니 샤

파일을 서버에 업로드하고 있지만 wav 형식은 다른 형식보다 크기가 크기 때문에 사용하지 않는 것이 좋습니다. 대신 caf, m4a 또는 다른 형식을 사용하십시오.

로 설정 AVFormatIDKey하여 wav 파일을 녹음 할 수 있습니다 kAudioFormatLinearPCM. 다른 인코딩 형식은 작동하지 않습니다.

NSURL *url = [NSURL fileURLWithPath: outPath];
NSError *err = nil;
audioRecorder = [[ AVAudioRecorder alloc] initWithURL:url 
                                             settings: audioSetting 
                                                error:&err];

//prepare to record
[audioRecorder setDelegate:self];
[audioRecorder prepareToRecord];
audioRecorder.meteringEnabled = YES;
[audioRecorder recordForDuration:(NSTimeInterval)10000000000];
[audioRecorder record];

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Android :-녹음 된 오디오 파일을 부동 배열로 변환

분류에서Dev

ffmpeg javascript를 사용하여 wav 오디오 파일에서 pcm 오디오 파일로 변환

분류에서Dev

녹음 된 오디오를 숫자 데이터로 변환

분류에서Dev

ffmpeg 오디오 변환 m4a에서 wav로-파일 크기 부풀림

분류에서Dev

OSStatus 오류 -50 (잘못된 매개 변수) iOS에서 AudioQueueNewInput 녹음 오디오

분류에서Dev

녹음 된 오디오를 파일에 저장-OpenSL ES-Android

분류에서Dev

오래된 AVI 파일을 최신 형식으로 변환

분류에서Dev

panda를 사용하여 디코딩 된 zip 파일을 .txt 파일로 변환 할 때 오류 발생 (디코딩 된 파일에 시작시 '\ t'가 없음)

분류에서Dev

Python 파일에서 녹음 된 오디오 재생이 작동하지 않음

분류에서Dev

Python-Float 오디오 데이터 배열을 wav 파일로 변환

분류에서Dev

G.723.1 유형의 오디오 파일을 wav 형식으로 변환하는 방법은 무엇입니까?

분류에서Dev

C ++에서 FFmpeg로 원시 파일을 오디오 파일 (.wav)로 변환하려면 어떻게해야합니까?

분류에서Dev

python으로 .wav에서 오디오의 원시 데이터 파일을 어떻게 변환 할 수 있습니까?

분류에서Dev

실제로 변환하지 않고 변환 된 오디오 파일의 이론적 인 파일 크기를 결정하는 방법 (예 : mp3에서 wav로)

분류에서Dev

인코딩 된 비디오 파일을 원시 비디오 형식으로 변환하는 방법 | 원시 파일을 읽는 OpenCV

분류에서Dev

wav 형식으로 오디오를 녹음하려면 어떻게해야합니까?

분류에서Dev

비디오 파일을 SD 카드에서 오디오로 변환

분류에서Dev

iOS 비디오를 오디오 파일로 변환

분류에서Dev

txt 파일을 변환 된 형식에서 pandas DataFrame으로 읽는 방법

분류에서Dev

오디오 파일을 한 형식에서 다른 형식으로 변환하는 방법은 무엇입니까?

분류에서Dev

웹 브라우저에서 녹음 된 오디오를 HTML 형식의 값으로 사용하려면 어떻게해야합니까?

분류에서Dev

오디오 파일 (mp3 또는 wav)을 무음 세그먼트에서 더 작은 파일로 나누는 방법

분류에서Dev

PhoneGap을 사용하여 iOS에서 오디오 녹음

분류에서Dev

Ubuntu에서 Windows 7 파티션으로 전송할 때 비디오 및 오디오 파일이 파일 형식을 변경 함

분류에서Dev

Ubuntu에서 Windows 7 파티션으로 전송할 때 비디오 및 오디오 파일이 파일 형식을 변경 함

분류에서Dev

wav 파일을 txt 파일로 변환

분류에서Dev

한 형식에서 다른 형식으로 비디오 변환을위한 라이브러리

분류에서Dev

ffmpeg에서 오디오로 데스크탑을 녹음하는 방법

분류에서Dev

IOS는 오디오를 녹음하고 실시간으로 파일로 분할합니다.

Related 관련 기사

  1. 1

    Android :-녹음 된 오디오 파일을 부동 배열로 변환

  2. 2

    ffmpeg javascript를 사용하여 wav 오디오 파일에서 pcm 오디오 파일로 변환

  3. 3

    녹음 된 오디오를 숫자 데이터로 변환

  4. 4

    ffmpeg 오디오 변환 m4a에서 wav로-파일 크기 부풀림

  5. 5

    OSStatus 오류 -50 (잘못된 매개 변수) iOS에서 AudioQueueNewInput 녹음 오디오

  6. 6

    녹음 된 오디오를 파일에 저장-OpenSL ES-Android

  7. 7

    오래된 AVI 파일을 최신 형식으로 변환

  8. 8

    panda를 사용하여 디코딩 된 zip 파일을 .txt 파일로 변환 할 때 오류 발생 (디코딩 된 파일에 시작시 '\ t'가 없음)

  9. 9

    Python 파일에서 녹음 된 오디오 재생이 작동하지 않음

  10. 10

    Python-Float 오디오 데이터 배열을 wav 파일로 변환

  11. 11

    G.723.1 유형의 오디오 파일을 wav 형식으로 변환하는 방법은 무엇입니까?

  12. 12

    C ++에서 FFmpeg로 원시 파일을 오디오 파일 (.wav)로 변환하려면 어떻게해야합니까?

  13. 13

    python으로 .wav에서 오디오의 원시 데이터 파일을 어떻게 변환 할 수 있습니까?

  14. 14

    실제로 변환하지 않고 변환 된 오디오 파일의 이론적 인 파일 크기를 결정하는 방법 (예 : mp3에서 wav로)

  15. 15

    인코딩 된 비디오 파일을 원시 비디오 형식으로 변환하는 방법 | 원시 파일을 읽는 OpenCV

  16. 16

    wav 형식으로 오디오를 녹음하려면 어떻게해야합니까?

  17. 17

    비디오 파일을 SD 카드에서 오디오로 변환

  18. 18

    iOS 비디오를 오디오 파일로 변환

  19. 19

    txt 파일을 변환 된 형식에서 pandas DataFrame으로 읽는 방법

  20. 20

    오디오 파일을 한 형식에서 다른 형식으로 변환하는 방법은 무엇입니까?

  21. 21

    웹 브라우저에서 녹음 된 오디오를 HTML 형식의 값으로 사용하려면 어떻게해야합니까?

  22. 22

    오디오 파일 (mp3 또는 wav)을 무음 세그먼트에서 더 작은 파일로 나누는 방법

  23. 23

    PhoneGap을 사용하여 iOS에서 오디오 녹음

  24. 24

    Ubuntu에서 Windows 7 파티션으로 전송할 때 비디오 및 오디오 파일이 파일 형식을 변경 함

  25. 25

    Ubuntu에서 Windows 7 파티션으로 전송할 때 비디오 및 오디오 파일이 파일 형식을 변경 함

  26. 26

    wav 파일을 txt 파일로 변환

  27. 27

    한 형식에서 다른 형식으로 비디오 변환을위한 라이브러리

  28. 28

    ffmpeg에서 오디오로 데스크탑을 녹음하는 방법

  29. 29

    IOS는 오디오를 녹음하고 실시간으로 파일로 분할합니다.

뜨겁다태그

보관