最近做个简单的播放界面,只是简单的设计到播放音频,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. [内核编程] 4.1 技术原理 & 4.2 键盘过滤框架

    4.1 技术原理 & 4.2 键盘过滤框架 4.1 预备知识 符号链接:符号链接其实就是一个“别名”.可以用一个不同的名字来代表一个设备对象(实际上),符号链接可以指向任何有名字的对象. Zw ...

  2. [React Native] Animate Styles of a React Native View with Animated.timing

    In this lesson we will use Animated.timing to animate the opacity and height of a View in our React ...

  3. Android bitmap绘制文字自动换行

    public Bitmap getNewBitMap(String text) { Bitmap newBitmap = Bitmap.createBitmap(,, Config.ARGB_4444 ...

  4. Android的NDK开发(5)————Android JNI层实现文件的read、write与seek操作

    1. 在Android的Java层实现文件的读写操作是非常简单的,可以参看之前写的博文:http://blog.csdn.net/conowen/article/details/7296121 在JN ...

  5. 百度echarts可以做什么

    百度echarts可以做什么 一.总结 一句话总结:可视化做的很好,各种图都有.而且支持动态数据. 二.百度eCharts体验 前言 从昨天开始给项目里添加一些图表对比功能,上一个项目里使用的是Hig ...

  6. 适合前端开发的 Chrome 扩展有哪些?(十款)

    适合前端开发的 Chrome 扩展有哪些?(十款) 一.总结 好的插件或者框架对程序员的意义重大. 二.适合前端开发的 Chrome 扩展有哪些?(十款) 掘金是一个高质量的技术社区,从 ECMASc ...

  7. [React Router v4] Style a Link that is Active with NavLink

    We often need to be able to apply style to navigation links based on the current route. In React Rou ...

  8. 简洁常用权限系统的设计与实现(六):不维护节点的深度level,手动计算level,构造树 (把一颗无序的树,变成有序的)

     本篇介绍的方法,参考了网上的代码.在递归过程中,计算level,是受到了这种方法的启发. CSDN上有篇关于树的算法,目标是把一个无序的树,变成有序的. 我看了下代码,并运行了下,感觉是可行的. 我 ...

  9. ue 不能初始化ftp组件

    进入到ue的安装目录下shift并右键-->在此处打开命令窗口,执行以下命令 regsvr32.exe wodFtpDLX.dll,如果是64位要执行regsvr32.exe wodFtpDLX ...

  10. An HTTP & HTTP/2 client for Android and Java applications OkHttp

    HTTP is the way modern applications network. It’s how we exchange data & media. Doing HTTP effic ...