AVAudioPlayer 的 Error Domain=NSOSStatusErrorDomain Code=-10875 "未能完成操作。(“OSStatus”错误 -10875。)"

在iOS开发中遇到AVAudioPlayer播放音频时,出现Error Domain=NSOSStatusErrorDomain Code=-10875的错误。通过检查代码发现,问题可能出在初始化AVAudioPlayer的方式上。解决方案包括设置AVAudioSession的类别为AVAudioSessionCategoryPlayback并激活,以及尝试使用initWithData初始化AVAudioPlayer。经过修改,音频播放问题得到解决。
摘要由CSDN通过智能技术生成

今天在做一个项目,因为要播放一个音频,就选择用 AVAudioPlayer来来做,因为以前用过,也没有注意太多后来就直接写,但是写好之后运行看效果,怎么也播放不出来,本来是因为本地音频文件有问题,后来重新找一个文件然后在播放,还是出现同样的问题.


用这段代码,以前是正常的,现在就不可以了,(网上还有好多开发人员用该方式是没有问题)

- (void)playRuningDistance:(TrainingPlayAudioType)playType{

      NSString *playFileName = [NSString stringWithFormat:@"distance%d",playType];

    NSString *filepath = [[NSBundle mainBundle] pathForResource:playFileName ofType:@"mp3"];

    BOOL fileexit = [[NSFileManager defaultManager] fileExistsAtPath:filepath];

    NSLog(@"本地问价 %d",fileexit);

    if (fileexit) {

        if (self.playerMusic && [self

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Objective-C中实现音频文件的存储和播放,可以按照以下步骤进行操作: 1. 导入AVFoundation框架和AudioToolbox框架。 ```objective-c @import AVFoundation; @import AudioToolbox; ``` 2. 创建一个AVAudioRecorder实例来录制音频文件。例如: ```objective-c NSError *error = nil; NSURL *audioURL = [NSURL fileURLWithPath:@"path/to/audio/file"]; NSDictionary *settings = @{ AVFormatIDKey : @(kAudioFormatMPEG4AAC), AVSampleRateKey : @44100.0, AVNumberOfChannelsKey : @2 }; AVAudioRecorder *recorder = [[AVAudioRecorder alloc] initWithURL:audioURL settings:settings error:&error]; if (error) { NSLog(@"Error creating audio recorder: %@", error); return; } [recorder prepareToRecord]; [recorder record]; ``` 3. 创建一个AVAudioPlayer实例来播放音频文件。例如: ```objective-c NSError *error = nil; NSURL *audioURL = [NSURL fileURLWithPath:@"path/to/audio/file"]; AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:audioURL error:&error]; if (error) { NSLog(@"Error creating audio player: %@", error); return; } [player play]; ``` 4. 如果要在后台播放音频,需要将音频会话设置为AVAudioSessionCategoryPlayback,例如: ```objective-c AVAudioSession *audioSession = [AVAudioSession sharedInstance]; NSError *error = nil; [audioSession setCategory:AVAudioSessionCategoryPlayback error:&error]; if (error) { NSLog(@"Error setting audio session category: %@", error); return; } [audioSession setActive:YES error:&error]; if (error) { NSLog(@"Error activating audio session: %@", error); return; } ``` 5. 最后,如果要删除音频文件,可以使用NSFileManager来删除。例如: ```objective-c NSString *filePath = @"path/to/audio/file"; NSError *error = nil; BOOL success = [[NSFileManager defaultManager] removeItemAtPath:filePath error:&error]; if (!success) { NSLog(@"Error deleting audio file: %@", error); } ``` 以上就是Objective-C中实现音频文件的存储和播放的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值