0

ボイスレコーダーを作っています。シミュレーターでの記録と再生は正常に機能します。しかし、iPhoneでは機能しません。( 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");

デバッガーの出力は file://localhost/var/mobile/Applications/9A607A45-974B-4E9F-9839-FD21B3BC9DD8/Documents/1251828741.caf(player) isFileURL playing..

4

3 に答える 3

0

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] );
}

これはあなたにいくつかの手がかりを与えるかもしれません。

于 2009-09-01T22:00:18.050 に答える
0

iPhone 用の .caf ファイルは、ステレオ チャンネルではなく、モノ チャンネルとしてエンコードする必要があります。そうしないと、iPhone でのみ機能します。

于 2009-11-07T05:31:59.830 に答える
0

iPhone OS オンデバイスには、iPhone OS インシミュレーターと同じオーディオコーデックがありません。私のプロジェクトでは、.cafある方法でエンコードされたファイルの再生に問題がありましたが、別の方法ではありません...ここでは少し試行錯誤が役立ちます (最終的には 16BLE PCM を使用しました)。

デバイスでサポートされているオーディオ コーデックを見つけるために、録音したオーディオ ファイルのエンコーディングを変更してみます。

于 2009-09-01T18:56:24.020 に答える