`
yangping_Account
  • 浏览: 191705 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

在 iPhone 静音情况下,播放 MP3 文件的代码

 
阅读更多

在 iPhone 静音情况下,播放 MP3 文件的代码

 

在 iPhone 静音的情况下,iOS 系统自带的 iPod 应用可以正常播放音乐,但很多开发者的第三方应用中却不行,下面这段代码能保证您的应用在 iPhone 静音情况下,照常播放 MP3 文件。

- (IBAction) record:(id)sender
{
    
    NSError *error = nil;
    BOOL b = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryRecord error:&error];
    [[AVAudioSession sharedInstance] setDelegate:self];
    if(b){
        NSLog(@"set audio session category record victory%d",b);
    }else {
        NSLog(@"error=================%@",error);
    }
    b = [[AVAudioSession sharedInstance] setActive:YES error:&error];
    if(b){
        NSLog(@"set active yes %d",b);
    }else {
        NSLog(@"error=================%@",error);
    }
    NSString *filePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"voice.caf"];
    //NSLog(@"filePath=========================%@",filePath);
    self.recordFileName = filePath;
    NSURL *url = [NSURL fileURLWithPath:filePath];
    
    AVAudioRecorder *recorder = [[AVAudioRecorder alloc] initWithURL:url settings:recordSettings error:&error];
    mRecorder = recorder;
    [recorder setDelegate:self];
    [recorder prepareToRecord];
    
    recorder.meteringEnabled = YES;
    
    BOOL audioHWAvailable = [[AVAudioSession sharedInstance] inputIsAvailable];
    
    // start recording
    [recorder recordForDuration:(NSTimeInterval) 3];
}


播放相对简单:

- (IBAction) play:(id)sender
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    [[AVAudioSession sharedInstance] setDelegate:self];
    NSError *error = nil;
    BOOL b = [audioSession setCategory:AVAudioSessionCategoryPlayback error:&error];
//    if(b){
//        NSLog(@"====================%d",b);
//    }else {
//        NSLog(@"error=================%@",error);
//    }
    
    b = [audioSession setActive:YES error:&error];
//    if(b){
//        NSLog(@"====================%d",b);
//    }else {
//        NSLog(@"error=================%@",error);
//    }
    
    NSURL *url = [NSURL fileURLWithPath:self.recordFileName];
    //NSLog(@"url============================%@",url);
    AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
    player.meteringEnabled = YES;
    player.volume = 1.0;
    player.delegate = self;
    [player prepareToPlay];
    [player play];
    [pool release];
}

分享到:
评论

相关推荐

    小程序ios音频播放没声音问题的解决

    针对此问题,解决的方法就是设置`innerAudioContext`的`obeyMuteSwitch`属性为`false`,以使音频能够在静音模式下播放。具体的代码实现是在设置音频源后,调用`innerAudioContext.obeyMuteSwitch=false`。 总结来说...

    iPhone水滴按键音

    标题中的“iPhone水滴按键音”指的是iPhone手机在操作时发出的一种特定声音效果,这种声音通常与用户按下屏幕上的虚拟按键或物理按键时同步播放,为用户提供了触觉反馈,增强了交互体验。水滴按键音设计得轻巧而富有...

    (0069)-iOS/iPhone/iPAD/iPod源代码-指示器(HUD)-Status HUD

    最后,注意资源中提到的“请在Mac下解压使用”,这意味着提供的源代码可能包含了Xcode项目文件,需要在Apple的开发环境中进行编译和运行。开发者可以通过导入这些源代码到自己的项目中,参考其设计思路和实现方式,...

    JAVA上百实例源码以及开源项目源代码

    Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系...

    google android sdk开发范例大全 第二版 PDF 光盘代码

     7.9 播放mp3资源文件   7.10 播放存储卡里的mp3音乐   7.11 自制录音/播放录音程序   7.12 通过收到短信开始秘密录音   7.13 内置影片播放器载入3gp电影   7.14 自制3gp影片播放器   7.15...

    AC692X软件问题整理(1).pdf

    34. 特殊环境下播放卡顿:样机在特殊环境下出现一拖二或对箱连接手机播放卡顿的情况可能与多个测试盒开启有关。 35. LINEIN输入问题:LINEIN信号无法关闭的问题。 36. 开机电压检测:在power_on_detect_deal函数中...

    Google Android sdk 开发范例大全 部分章节代码

    7.9 播放mp3资源文件——raw文件夹与MediaPlayer的使用 7.10 播放存储卡里的mp3音乐——MediaPlayer.setDataSource 7.11 自制录音/播放录音程序——MediaRecorder与AudioEncoder 7.12 通过收到短信开始秘密录音——...

    AVAudioPlayer

    例如,`audioPlayerDidFinishPlaying:successfully:`方法会在音频播放完毕后被调用,你可以在这里判断是否需要继续播放下一首或者处理其他逻辑。 此外,AVAudioPlayer还提供了其他一些高级功能,如音轨的淡入淡出、...

    Android 仿苹果通话界面源码

    源码可能包含了大量的animator XML文件和Java或Kotlin代码段,用于实现这些动态效果。 交互逻辑是另一个关键部分。在通话界面,可能有接听、挂断、静音、免提等操作。在Android上,这涉及监听触摸事件、处理...

    DENON天龙AVR-X4700H操作说明书.pdf

    此外,支持AirPlay和QPlay功能,使iPhone、iPad和QQ音乐的播放变得方便。 设备的高级功能还包括声道电平调节,确保各声道音频的一致性;视频选择功能允许音频播放时同步视频;画面模式调整可以根据观看环境优化图像...

    IOS应用源码——录制音频 demo Recording.zip

    例如,你可以设置会话类别为`AVAudioSessionCategoryRecord`,确保录音时其他音频播放被静音,或者设置为`AVAudioSessionCategoryPlayAndRecord`,以便同时进行录音和播放。 4. 录音设置: AVAudioRecorder的初始化...

    linphone ios demo

    Linphone-iphone-master是该项目的源代码仓库,包含了开发、编译和运行iOS版Linphone所需的所有文件。 【标签】:“linphone”是项目的名称,它是一个跨平台的VoIP解决方案,支持多种操作系统。"ios demo"强调这是...

    WebRTCDemo-iOS

    WebRTCDemo-iOS 是一个基于Objective-C编写的iOS应用示例,它展示了如何在iPhone或iPad上实现WebRTC(Web Real-Time Communication)技术。WebRTC是一种开源项目,旨在为浏览器和其他应用程序提供实时通信功能,支持...

Global site tag (gtag.js) - Google Analytics