【问题标题】:xCode Console Errors when recording Audio录制音频时的 xCode 控制台错误
【发布时间】:2011-08-07 09:27:50
【问题描述】:

我在录制声音时收到以下控制台错误。任何想法我做错了什么?录音工作,除了输出真的很软。

TIA

2011-04-17 12:51:25.707 FlashCards[18561:1210f] Cannot find executable for CFBundle/CFPlugIn 0x5a64780 </Library/Audio/Plug-Ins/HAL/DVCPROHDAudio.plugin> (not loaded)
2011-04-17 12:51:25.708 FlashCards[18561:1210f] Cannot find function pointer NewPlugIn for factory C5A4CE5B-0BB8-11D8-9D75-0003939615B6 in CFBundle/CFPlugIn 0x5a64780 </Library/Audio/Plug-Ins/HAL/DVCPROHDAudio.plugin> (not loaded)
2011-04-17 12:51:25.712 FlashCards[18561:1210f] Cannot find executable for CFBundle/CFPlugIn 0x5c69e90 </Library/Audio/Plug-Ins/HAL/iSightAudio.plugin> (not loaded)
2011-04-17 12:51:25.713 FlashCards[18561:1210f] Cannot find function pointer iSightAudioNewPlugIn for factory 9BE7661E-8AEF-11D7-8692-000A959F49B0 in CFBundle/CFPlugIn 0x5c69e90 </Library/Audio/Plug-Ins/HAL/iSightAudio.plugin> (not loaded)
2011-04-17 12:51:25.729 FlashCards[18561:c503] start recording

根据要求,我正在添加代码:

.h 文件 sn-p:

#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
#import <CoreAudio/CoreAudioTypes.h>
#import <AudioToolbox/AudioToolbox.h>

@protocol BackViewControllerDelegate;


@interface BackViewController : UIViewController <UITextViewDelegate, AVAudioRecorderDelegate, AVAudioPlayerDelegate, UIAlertViewDelegate>
{
AVAudioRecorder *audioRecorder;
AVAudioPlayer *audioPlayer;
IBOutlet UIButton *playButton;
IBOutlet UIButton *recordButton;
IBOutlet UIActivityIndicatorView *autoCog;
BOOL toggle;
}

@property (nonatomic, retain) IBOutlet UIButton *playButton;
@property (nonatomic, retain) IBOutlet UIButton *recordButton;
@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *autoCog;

-(IBAction) recordAudio;
-(IBAction) playAudio;

.m sn-p

@synthesize playButton; 
@synthesize recordButton;
@synthesize autoCog;

- (void)viewWillAppear:(BOOL)animated {
    NSLog(@"%s", __FUNCTION__);
    [super viewWillAppear:animated];

    //Start the toggle in false mode. PREMISE: WHEN WE GET HERE FIRST, WE ARE NOT RECORDING
    toggle = NO;

    NSError *error = nil;

    //Instantiate an instance of the AVAudioSession object.
    AVAudioSession * audioSession = [AVAudioSession sharedInstance];

    [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error: &error];

    //Activate the session
    [audioSession setActive:YES error: &error];
}

-(void) playAudio
{
    NSLog(@"%s", __FUNCTION__);

    if (audioPlayer.playing) {
        [audioPlayer stop];
    }

    if (toggle == NO)
    {
        recordButton.enabled = NO;        
        if (audioPlayer)
            [audioPlayer release];
        NSError *error;

        // GET THE APPROPRIATE SOUND FILE NAME
.....

        //CHECK FOR EXISTING SOUNDFILE

        if (![[NSFileManager defaultManager] fileExistsAtPath:soundFilePath])
        {
            UIAlertView *someError = [[UIAlertView alloc] initWithTitle: @"Oops!" message: @"There is not a sound for this word. Press REC to record one. Press cancel to stop" delegate: self 
                                                      cancelButtonTitle: @"REC" otherButtonTitles:@"CANCEL", nil];

            [someError show];
            [someError release]; 
        }


        NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];

        AudioSessionSetProperty (
                                 kAudioSessionProperty_OverrideCategoryDefaultToSpeaker,
                                 sizeof (doChangeDefaultRoute),
                                 &doChangeDefaultRoute
                                 );

        audioPlayer = [[AVAudioPlayer alloc] 
                       initWithContentsOfURL:soundFileURL                                    
                       error:&error];
        audioPlayer.volume = 1.0;
        audioPlayer.delegate = self;

        if (error){
            NSLog(@"Error: %@", 
                  [error localizedDescription]);
        }
        else
        {    
            [audioPlayer play];

        }
    }
    recordButton.enabled = YES;
    //NSLog(@"end of playAudio");
}

【问题讨论】:

  • 你应该发布一些代码,最好是出现在你之前的东西NSLog(@"start recording");
  • 嗨,感谢您的回复。我已更新我的帖子以包含相关代码 sn-ps。由于 audioPlayer 和 audioRecorder 都出现了问题,因此我使用了 audioPlayer sn-p,因为它更短。

标签: xcode ios console core-audio avaudiorecorder


【解决方案1】:

我以前见过这些警告,你复制了另一个旧项目会发生什么?如果是这样,我就是这样做的,我只是用最新版本的 Xcode 创建了一个新的空白项目,然后开始将旧文件复制到其中。

这似乎清除了这些错误。

【讨论】:

    猜你喜欢
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 2018-10-03
    相关资源
    最近更新 更多