• 解决使用个推后背景音乐音量变小问题


    问题描述:

      项目集成个推之后,假如后台APP正在播放音乐,结果一打开项目APP,正在播放的音乐的音量就自动降低了。

    解决方案2:放在个推初始化代码之前即可

     AVAudioSession *audioSession = [AVAudioSession sharedInstance];
        NSError *setCategoryError = nil;
        BOOL success = [audioSession setCategory:AVAudioSessionCategorySoloAmbient withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&setCategoryError];
        if(!success)
        {
            NSLogE(@"AVAudioSession setCategory Error:%@",setCategoryError);
        }
        else
        {
            NSError *setActiveError=nil;
            success=[audioSession setActive:YES withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&setActiveError];
            if(!success)
            {
                NSLogE(@"AVAudioSession setActive Error:%@",setCategoryError);
            }
        }
    

    实际效果为:进入APP后背景音乐就自动关掉了,手动重新打开音乐后,音量不变小。

    解决方案1:在初始化个推之后加上以下代码即可(实测在iPhone4 7.1.2可以用,但是在iPhone6 Plus 9.1上却达不到效果)

      AVAudioSession *audioSession = [AVAudioSession sharedInstance];
        NSError *setCategoryError = nil;
        BOOL success = [audioSession setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&setCategoryError];
        if(!success)
        {
            NSLogE(@"AVAudioSession setCategory Error:%@",setCategoryError);
        }
        else
        {
            NSError *setActiveError=nil;
            success=[audioSession setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&setActiveError];
            if(!success)
            {
                NSLogE(@"AVAudioSession setActive Error:%@",setCategoryError);
            }
        }
    

      
    实际效果为:

      会有一瞬间音量降低了,但是又马上恢复了,因为调用setActive为NO的缘故吧;但是上面的setCategory的参数不能随意修改,实际测试过程中改动之后,效果就没了。

    待验证的有:

      这样做之后,个推后台是否还能申请到足够的时间片运行推送代码。

    参考资料:

      Technical Q&A QA1668: Playing media while in the background using AV Foundation on iOS

    https://developer.apple.com/library/ios/qa/qa1668/_index.html

    Defining an Audio Session
    https://developer.apple.com/library/prerelease/tvos/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/ConfiguringanAudioSession/ConfiguringanAudioSession.html

    iOS 开发 初级:Audio 之 Audio Session - songrotek的专栏 - 博客频道 - CSDN.NET
    http://blog.csdn.net/songrotek/article/details/8887983

     

    By:AsionTang

    At:2015年11月13日 12:11:27

    作者:Asion Tang
    凡是没有注明[转载]的文章,本Blog发表的文章版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    PHP实现微信退款的分析与源码实现
    thinkphp对180万数据批量更新支持事务回滚
    在线工具
    php连接redis
    Redis PHP连接操作
    阿里大于短信接口整合TP5
    Unity3d中如何查找一个脚本被挂在那些预设上面?
    泰课在线夜猫的贪食蛇
    EasyTouch5ForSiki学院
    unity游戏热更新
  • 原文地址:https://www.cnblogs.com/AsionTang/p/4961747.html
Copyright © 2020-2023  润新知