Note that there are some explanatory texts on larger screens.

plurals
  1. POObjective C: OpenAL changing Pitch issue
    primarykey
    data
    text
    <p>im having a hard time on OpenAL framework... i just want to change the pitch in playback action... what code is missing in my project.. im new in objective c,iOS development. hoping for your kind consideration, thanks in advance.. here is my code for the three button (RECORD,STOP,Play)..</p> <pre><code>-(void)startRecording:(UIButton *)sender { //for recording recStopBtn.hidden = NO; recStopBtn.enabled =YES; playRecBtn.enabled = NO; loading.hidden = NO; [loading startAnimating]; AVAudioSession *audioSession = [AVAudioSession sharedInstance]; NSError *err = nil; [audioSession setCategory :AVAudioSessionCategoryPlayAndRecord error:&amp;err]; if(err) { NSLog(@"audioSession: %@ %d %@", [err domain], [err code], [[err userInfo] description]); return; } [audioSession setActive:YES error:&amp;err]; err = nil; if(err) { NSLog(@"audioSession: %@ %d %@", [err domain], [err code], [[err userInfo] description]); return; } recordSetting = [[NSMutableDictionary alloc] init]; // We can use kAudioFormatAppleIMA4 (4:1 compression) or kAudioFormatLinearPCM for nocompression [recordSetting setValue :[NSNumber numberWithInt:kAudioFormatAppleIMA4] forKey:AVFormatIDKey]; // We can use 44100, 32000, 24000, 16000 or 12000 depending on sound quality [recordSetting setValue:[NSNumber numberWithFloat:16000.0] forKey:AVSampleRateKey]; // We can use 2(if using additional h/w) or 1 (iPhone only has one microphone) [recordSetting setValue:[NSNumber numberWithInt: 1] forKey:AVNumberOfChannelsKey]; // These settings are used if we are using kAudioFormatLinearPCM format //[recordSetting setValue :[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey]; //[recordSetting setValue :[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey]; //[recordSetting setValue :[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey]; recorderFilePath = [NSString stringWithFormat:@"%@/MySound.caf", DOCUMENTS_FOLDER]; NSLog(@"recorderFilePath: %@",recorderFilePath); NSURL *url = [NSURL fileURLWithPath:recorderFilePath]; err = nil; NSData *audioData = [NSData dataWithContentsOfFile:[url path] options: 0 error:&amp;err]; if(audioData) { NSFileManager *fm = [NSFileManager defaultManager]; [fm removeItemAtPath:[url path] error:&amp;err]; } err = nil; recorder = [[ AVAudioRecorder alloc] initWithURL:url settings:recordSetting error:&amp;err]; if(!recorder){ NSLog(@"recorder: %@ %d %@", [err domain], [err code], [[err userInfo] description]); UIAlertView *alert = [[UIAlertView alloc] initWithTitle: @"Warning" message: [err localizedDescription] delegate: nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; return; } //prepare to record [recorder setDelegate:self]; [recorder prepareToRecord]; recorder.meteringEnabled = YES; BOOL audioHWAvailable = audioSession.inputIsAvailable; if (! audioHWAvailable) { UIAlertView *cantRecordAlert = [[UIAlertView alloc] initWithTitle: @"Warning" message: @"Audio input hardware not available" delegate: nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [cantRecordAlert show]; return; } // start recording [recorder record]; lblStatusMsg.text = @"Recording..."; //recIcon.image = [UIImage imageNamed:@"rec_icon.png"]; //progressView.progress = 0.0; //timer = [NSTimer scheduledTimerWithTimeInterval:6.0 target:self selector:@selector(handleTimer) userInfo:nil repeats:YES]; } -(void)stopRecord:(UIButton *)sender { loading.hidden = YES; [loading stopAnimating]; recStartBtn.enabled = YES; recStartBtn.hidden = NO; playRecBtn.hidden = NO; playRecBtn.enabled = YES; recStopBtn.enabled = NO; recStopBtn.hidden = YES; [recorder stop]; [timer invalidate]; lblStatusMsg.text = @"Stopped"; // recIcon.image = [UIImage imageNamed:@"rec_icon2.png"]; } -(void)playRecord:(UIButton *)sender { recorderFilePath = [NSString stringWithFormat:@"%@/MySound.caf", DOCUMENTS_FOLDER]; NSURL *urlRecord = [NSURL fileURLWithPath:recorderFilePath isDirectory:NO]; NSError *errorRecord; soundRecord = [[AVAudioPlayer alloc] initWithContentsOfURL:urlRecord error:&amp;errorRecord]; [soundRecord play]; } -(void)changePitch:(UIButton *)sender { alSourcef(recorderFilePath, AL_PITCH, 1.2f);//this kinda troubles me,the source. =( [soundRecord play];//this one also... } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload