gpt4 book ai didi

ios - 录音功能无法使用

转载 作者:行者123 更新时间:2023-11-29 02:25:49 24 4
gpt4 key购买 nike

在我的应用程序中,我想录制语音并通过电子邮件发送。我正在录制语音,一旦单击附加按钮,就会出现以下错误。好像没有录语音。

enter image description here

这是我的代码片段

- (void)viewDidLoad {
[super viewDidLoad];

NSArray *pathComponents = [NSArray arrayWithObjects:
[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject],
@"MyAudioMemo.m4a",
nil];
NSURL *outputFileURL = [NSURL fileURLWithPathComponents:pathComponents];

NSLog(@"%@",outputFileURL);

AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];

// Define the recorder setting
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:NULL];
recorder.delegate = self;
recorder.meteringEnabled = YES;
[recorder prepareToRecord];
}

- (IBAction)microButton:(id)sender {

if(counter%2==0)
{
if (!recorder.recording) {
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setActive:YES error:nil];
// Start recording
[recorder record];
}
counter=counter+1;
}
else{
[recorder stop];

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setActive:NO error:nil];
counter=counter+1;
}
}

- (void) audioRecorderDidFinishRecording:(AVAudioRecorder *)avrecorder successfully:(BOOL)flag{
NSLog(@"audioPlayerDidFinishPlaying");
UIAlertView *alert = [[UIAlertView alloc] initWithTitle: @"Done" message: @"Voice recorded successfully!"delegate: nil cancelButtonTitle:@"OK"otherButtonTitles:nil];
[alert show];
}


- (IBAction)attachBtn:(id)sender {

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *URL = [documentsDirectory stringByAppendingPathComponent:@"MyAudioMemo.m4a"];

NSString* someText = @"Voice";
NSURL *urlToShare = [NSURL fileURLWithPath:URL isDirectory:NO];
NSArray* dataToShare = @[someText, urlToShare];

UIActivityViewController* activityViewController =
[[UIActivityViewController alloc] initWithActivityItems:dataToShare
applicationActivities:nil];
activityViewController.excludedActivityTypes = @[UIActivityTypePrint,UIActivityTypeCopyToPasteboard,UIActivityTypeAssignToContact];
activityViewController.popoverPresentationController.barButtonItem = (UIBarButtonItem *)sender;

activityViewController.completionHandler = ^(NSString *activityType, BOOL completed) {
//if (completed) {
[self dismissViewControllerAnimated:YES completion:nil];
//}
};

[self presentViewController:activityViewController animated:YES completion:nil];
}

最佳答案

假设这是在 iPad 上,当您呈现 UIActivityViewController 时,它将显示在弹出窗口中。您需要执行消息所述的操作,设置 sourceViewbarButtonItem

activityViewController.popoverPresentationController.barButtonItem = sender;

假设sender是一个UIBarButtonItem。如果它是 UIButton 或其他 View ,请使用:

activityViewController.popoverPresentationController.sourceView = sender;

关于ios - 录音功能无法使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27551590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com