最近做个简单的播放界面,只是简单的设计到播放音频,ios系统自带播放有四个类可以播放音频

AVPlayer,AVAudioPlayer,MPMusicPlayerController,MPMoviePlayerController
 
因为设计到播放本地和网络音频,人又比较偷懒,尝试看用自带的类能不能做个较好的功能,经过各种尝试之后,决定用AVAudioPlayer播放本地音频,网络音频用MPMoviePlayerController。其实AVPlayer既可以播放本地又可以播放网络音频,但是由于官方封装的东西太少,本来都还可以凑合着用一下,但是因为最近推出了IOS7,在IOS7下运行会出现获取不到网络音频的时间信息,以至于错误到0/0这种表达式跳转到汇编里卡主,调试了好久才找到问题,刚开始还以为是基础数据类型强转出现了问题(不知道是不是官方文档没注意更新,获取时间的接口被弃用还是改用别的api了,总之就是在IOS7以下能获取音频时间,IOS7以上就全部是0)。各种纠结之后决定AVAudioPlayer和MPMoviePlayerController组合,但是问题冒出来了,MPMoviePlayerController不能控制音量,必须通过

[[MPMusicPlayerController applicationMusicPlayer] setVolume:value];

来设置系统音量,好吧,凑合着用吧,但是奇葩问题是接二连三的,IOS7以上次api废弃,这是神马节奏,看官方解释

// The current volume of playing music, in the range of 0.0 to 1.0.

// This property is deprecated -- use MPVolumeView for volume control instead.

@property(nonatomic) float volume NS_DEPRECATED_IOS(3_0, 7_0);

ok,那没办法了,就用MPVolumeView来搞吧,各种addSubview之后,我插,怎么样都看不到slider,无奈在网上也搜了很久,在谷歌里输关键字的时候看到了“mpvolumeviewnot showing in simulator”这句,我去,果断真机调试,这尼玛才有了slider,惊讶啊,为毛这种东西文档里没找到,难道我傻逼了,吐槽到此了。

最后说一下,关于音量控制

AVPlayer:提供音量控制api,但是只支持IOS7

AVAudioPlayer:提供音量控制api,目前是都支持

MPMusicPlayerController:提供音量控制api,但是支持IOS7以下

MPMoviePlayerController:貌似暂时不支持音量控制

以后要用系统自带控件播放音频的小伙伴们要掌握好了

转载自:

矢倉_Andy

http://blog.sina.com.cn/s/blog_5c5c87d80101bel4.html

关于IOS7以及向下兼容音量控制问题的更多相关文章

  1. WPF 媒体播放器(MediaElement)实例,实现进度和音量控制

    WPF 视频音频播放控件MediaElement实现进度控制,音量控制实例 说明: 1.Volume控制音量的大小,double类型,并且实现了属性依赖,可以用来双向绑定:在 0 和 1. 之间的线性 ...

  2. Android之声音管理器《AudioManager》的使用以及音量控制

    以下为网上下载然后拼接-- Android声音管理AudioManager使用 手机都有声音模式,声音.静音还有震动,甚至震动加声音兼备,这些都是手机的基本功能.在Android手机中,我们同样可以通 ...

  3. Android应用--简、美音乐播放器增加音量控制

    Android应用--简.美音乐播放器增加音量控制 2013年6月26日简.美音乐播放器继续完善中.. 题外话:上一篇博客是在6月11号发的,那篇博客似乎有点问题,可能是因为代码结构有点乱的原因,很难 ...

  4. krpano音量控制(我们已经转移到krpano中国网站 krpano360.com)

    需求: 实现音量控制,这是官网的样例, 本文已经转移 到 krpano中文网 p=148">http://krpano360.com/? p=148 很多其它教程关注微信公众号 krp ...

  5. ALSA声卡12_从零编写之添加音量控制_学习笔记

    1.设置音量时应用程序的调用过程 (1)strace分析: amixer cset numid=1 30 (设置音量) /dev/snd/controlC0 open SNDRV_CTL_IOCTL_ ...

  6. PCM音量控制(高级篇)

    http://blog.jianchihu.net/pcm-volume-control.html 去年写过一篇文章,有关PCM的音量控制:http://blog.jianchihu.net/pcm- ...

  7. PCM音量控制

    http://blog.jianchihu.net/pcm-volume-control.html 一.声音的相关概念 声音是介质振动在听觉系统中产生的反应.声音总可以被分解为不同频率不同强度正弦波的 ...

  8. EasyPlayerPro windows播放器本地音频播放音量控制实现

    背景描述 作为一个播放器, 除了能播放视频和声音外,音量控制是绝对不能缺少的功能; 本文在音视频播放的基础上,增加对音量的控制: 实现流程 调用mixerGetDevCaps获取音频输出设备列表; 打 ...

  9. Android原生音量控制【转】

    本文转载自:http://blog.csdn.net/u013082948/article/details/65630085 本文主要涉及AudioService.还是基于5.1.1版本的代码. Au ...

随机推荐

  1. php Apache配置伪静态的介绍

    以下是摘抄http://jingyan.baidu.com/article/86112f132aa7462737978718.html的,作为记录,方便以后参考 现有的在线网上视频教程对伪静态的讲解比 ...

  2. Powerful Bash-style command line editing for cmd.exe

    https://mridgers.github.io/clink/ Clink Powerful Bash-style command line editing for cmd.exe Downloa ...

  3. jquery-2 jQuery原理和核心方法(多看学习视频)

    jquery-2  jQuery原理和核心方法(多看学习视频) 一.总结 一句话总结:jQuery就是普通的js对象,只不过方法比较多而已,属性就length一个. 1.jquery的链式操作的底层原 ...

  4. PHP的SPL标准库里面的堆(SplHeap)怎么使用

    PHP的SPL标准库里面的堆(SplHeap)怎么使用 一.总结 1.因为SplHeap是抽象类,所以要先继承,实现里面的抽象方法compare后,才能new对象使用. 二.PHP的SPL标准库里面的 ...

  5. IT增值服务-客户案例(三):合肥薪火科技,Java和P2P网络借贷系统开发指导

    客户整体情况: 合肥薪火科技,是安徽合肥一家主营微信开发和运营的中小企业,http://weimarket.cn/. 这家公司筹备.创立.曲折创业的经历,我一直有关注.因为2个老板,都是我的同学校友, ...

  6. 常用的iOS开发或者优化的小工具

    下面介绍一下我常用的iOS开发或者优化的小工具 由于很多工具大多数博客都已经介绍过了,我就列举一些我认为还不错但是大家不常列举的: Crafter https://github.com/krzyszt ...

  7. GANs(生成对抗网络)初步

    Image Completion with Deep Learning in TensorFlow 1. 基本思路 首先定义一个简单的.常见的概率分布,将其表示为 pz,不妨将其作为 [-1, 1] ...

  8. experiment : 在私有堆和默认进程堆中, 测试能分配的堆空间总和, 每次能分配的最大堆空间

    实验环境: Win7X64Sp1 + vs2008,  物理内存16GB. 实验结论: *  进程堆的最大Size并没有使用完剩余的物理内存    *  每次能分配的最大堆空间接近2M, 不管是私有堆 ...

  9. cordova-plugin-file-transfer 监听到下载成功,找不到文件 - 简书

    原文:cordova-plugin-file-transfer 监听到下载成功,找不到文件 - 简书 下载成功后找不到下载文件 function download(fileEntry, uri) { ...

  10. hadoop 3.x 关闭安全模式

    hdfs启动后发现进入了安全模式,最开始使用hdfs dfsadmin -safemode leave来进行关闭发现无法关闭,只好使用hdfs dfsadmin -safemode forceExit ...