-->

播放文件的.caf:在模拟器工作正常,但不是在iPhone(playing a .caf file:

2019-07-04 07:06发布

我建立一个录音机。 记录和播放作品罚款模拟器。 但在iphone上它不起作用。 (I遵循确切步骤中提到iPhoneOSProgrammingGuide / AudioandVideoTechnologies )

    printf("%s(player)\n",[[self.soundFileURL absoluteString] UTF8String]);

    AVAudioPlayer *newPlayer =
    [[AVAudioPlayer alloc] initWithContentsOfURL: self.soundFileURL error: nil];

    if([self.soundFileURL isFileURL]){
        printf("isFileURL\n");
    }

    self.player = newPlayer;
    [newPlayer release];

    [player prepareToPlay];
    [player setDelegate: self];
    //recorderLabel.text=@"Playing..";
    [player play];
    printf("playing..\n");

调试了卖出期权文件://localhost/var/mobile/Applications/9A607A45-974B-4E9F-9839-FD21B3BC9DD8/Documents/1251828741.caf(播放器)isFileURL打..

Answer 1:

在iPhone OS设备上不具有相同的音频编解码器提供给它的iPhone OS在模拟器一样。 在我的项目我有问题,播放.caf编码的文件的一种方式,但不是另一个...有点试验和错误,将有助于在这里(我最终使用16BLE PCM)。

我会尝试改变,试图找到设备所支持的音频编解码器录制的音频文件的编码。



Answer 2:

确保声音不是在iPhone上关闭。

以下添加到您的委托(个体经营):

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)playedPlayer successfully:(BOOL)flag {
    NSLog(@"Done playing %@", flag ? @"with success" : @"with failure" );
}

- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error {
    NSLog(@"Error while decoding: %@", [error localizedDescription] );
}

这可能给你一些线索。



Answer 3:

为iPhone文件的.caf需要被编码为单声道,而不是有一个立体声通道那么只有它会与iPhone合作。



文章来源: playing a .caf file: works fine in simulator but not in iPhone