最近做个简单的播放界面,只是简单的设计到播放音频,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. 编译nodejs及其源代码研究

    本文将从 源代码 研究nodejs 的原理.本质,探讨nodejs的应用场景,以及高性能开发实践指南. 文件夹: 第一节:编译node.js 第二节:源代码分析 进入主题:下面是在win7 64 下进 ...

  2. RSA Android加密的数据服务器上无法解密?

    一.android加密的数据服务器上无法解密? "算法/模式/填充" android的rsa加密方式是--------RSA/ECB/NoPadding或者RSA/None/NoP ...

  3. [Grid Layout] Describe a grid layout using grid-template-areas

    We can describe the nature of a grid in an ‘ASCII-art’ way with grid-template-areas. Let’s see how t ...

  4. 【转】dbx用法讲解

    http://blog.chinaunix.net/uid-25544300-id-328735.html dbx 命令 用途 提供了一个调试和运行程序的环境. 语法 dbx [ -a Process ...

  5. springmvc中controller内方法跳转forward?redirect?

    使用springmvc的controller的时候,碰到controller内方法的跳转的问题,记录下问题以及自己测试的过程. 场景: 业务执行更新操作之后返回列表页面,列表页面需默认展示查询的列表数 ...

  6. springMvc中restful风格的api路径中把小数点当参数,SpringMvc中url有小数点

    在springMvc web项目中restful风格的api路径中有小数点会被过滤后台拿不到最后一个小数点的问题, 有两种解决方案: 1:在api路径中加入:.+ @RequestMapping(&q ...

  7. Swagger 专题

    随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了:前端渲染.前后端分离的形态,而且前端和后端在各自的技术道路上越走越远. 前端和后端的唯一联系,变成了API接口:API文档成了前后端 ...

  8. Android在网络上分析获取图片(支持bmp格式)

    Android学习系列 - 在网络上显示的图像(支持bmp格公式)) 参见例如,下面的代码: /**     * 至Url地址上去照片.并返回Bitmap回来     *     * @param i ...

  9. CORDOVA :添加cordova-plugin-file-opener2插件cordova打包报错

    原文:CORDOVA :添加cordova-plugin-file-opener2插件cordova打包报错 最近在接触android项目,其中涉及到APP自动更新的问题,当新APP下载成功后需要打开 ...

  10. android studio的模拟器waiting for target device to come online原因

    android studio的模拟器一直waiting for target device to come online,demo也运行不上去 如图所示: 你很可能运行的android 6.0 (AP ...