2016-01-26 17:31:20 crypond 阅读数 3399
  • FFmpeg音视频开发实战5 iOS/Android/windows/Linux

    本课程适合从事音视频,网络通讯开发的程序员。实战案例可用于 音视频处理,无人机,安防,直播等所有音视频领域。课程从Linux音视频采集,到TCP/IP UDP Socket服务器,客户端编程, 如何去定义网络通讯私有协议,x264,FFmpeg编解码,OpenGL ES渲染视频。OpenAL播放音频。到pcm实时转AAC,到H.264+AAC合成mp4, 整个流程,涵盖iOS,Android ,Mac 嵌入式Linux音视频相关绝大多数实用场景。以及Posix编程接口,C C++ Qt,FFmpeg跨平台开发,iOS,Android,Mac,linux,桌面软件都不再是障碍。让学员能够,融汇贯通掌握音视频领域相关知识,从事音视频相关职业,年薪轻松三四十万不是梦。 付费学员加入QQ群,可获得1~3年的专业解答,周六晚8:00 ~10:00 QQ群内部直播答疑, 以及就业指导,项目练习等服务.

    164299 人正在学习 去看看 陈超
 最近做到地图定位的东西,在搜索应用定位权限判断的这一块儿的时候搜到了许多答案,现在把自己的一些理解说一下,有错误请大家指正。
iOS的应用定位权限有种状态 
1   .NotDetermined 表示用户还未对该应用的定位权限做出选择,但是一般如果用到定位,一进入app的时候就会自动弹出提示框要用户选择启用或者禁止,这个状态应该说进入程序后就不存在了
2  .Restricted 表示GPS功能受限於某些限制,无法使用定位服务,例如 parental controls(这里没想到该状态的应用场景)该状态用户无法改变    
.Denied 表示用户拒绝该应用使用定位服务(也可能是定位服务总开关处于关闭状态,CLLocationManager.authorizationStatus()获取的是应用的授权状态,但是当定位服务总开关处于关闭状态的时候,所有应用的定位服务都为关闭状态 )   
4  .AuthorizedAlways(iOS 8.0) 表示用户授权该应用可永久使用定位权限    
5  .AuthorizedWhenInUse(iOS 8.0) 表示用户授权该应用或其功能在屏幕上显示时才能访问用户的位置
还有一个判断设备定位权限总开关的方法 CLLocationManager.locationServicesEnabled() 返回值是一个Bool类型,true为开启,false为关闭

理清了上面每种状态的意义,我们便可以根据当前的状态来判断当前应用的定位权限
思路:如果系统定位服务总开关为开启状态,直接判断应用的定位权限状态是否开启;如果系统的定位服务总开关关闭,则所有应用的定位权限为关闭状态(不存在说系统定位服务总开关为关闭状态,而某个应用服务的定位服务为开启状态),这样想来,我们对应用定位权限的判断时不需要以系统定位服务总开关的状态为前提的,我们只需要对应用的定位权限状态进行判断即可。
因为.NotDetermined为第一次进入的时候应用的状态,.Restricted状态无法更改,所以我们只要考虑后面3种状态就行,我们的判断可以写为,

 
if(CLLocationManager.authorizationStatus() != .Denied) {
            print("应用拥有定位权限")
        }else {
            let aleat = AlertController(title: "打开定位开关", message:"定位服务未开启,请进入系统设置>隐私>定位服务中打开开关,并允许xxx使用定位服务", preferredStyle: .Alert)
            let tempAction = UIAlertAction(title: "取消", style: .Cancel) { (action) in
            }
            let callAction = UIAlertAction(title: "立即设置", style: .Default) { (action) in
                let url = NSURL.init(string: UIApplicationOpenSettingsURLString)
                if(UIApplication.sharedApplication().canOpenURL(url!)) {
                    UIApplication.sharedApplication().openURL(url!)
                }
            }
            aleat.addAction(tempAction)
            aleat.addAction(callAction)
            self.presentViewController(aleat, animated: true, completion: nil)
        }



2016-09-19 14:32:55 u011496891 阅读数 4059
  • FFmpeg音视频开发实战5 iOS/Android/windows/Linux

    本课程适合从事音视频,网络通讯开发的程序员。实战案例可用于 音视频处理,无人机,安防,直播等所有音视频领域。课程从Linux音视频采集,到TCP/IP UDP Socket服务器,客户端编程, 如何去定义网络通讯私有协议,x264,FFmpeg编解码,OpenGL ES渲染视频。OpenAL播放音频。到pcm实时转AAC,到H.264+AAC合成mp4, 整个流程,涵盖iOS,Android ,Mac 嵌入式Linux音视频相关绝大多数实用场景。以及Posix编程接口,C C++ Qt,FFmpeg跨平台开发,iOS,Android,Mac,linux,桌面软件都不再是障碍。让学员能够,融汇贯通掌握音视频领域相关知识,从事音视频相关职业,年薪轻松三四十万不是梦。 付费学员加入QQ群,可获得1~3年的专业解答,周六晚8:00 ~10:00 QQ群内部直播答疑, 以及就业指导,项目练习等服务.

    164299 人正在学习 去看看 陈超

Xcode8,iOS10.0系统中,使用相机功能的时候报错

This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.

主要原因是iOS10之后,相册,位置,麦克风等这些需要权限验证的东西,都需要在plist文件里面添加响应的键值对。否则都会报错,使用Privacy开头的都需要添加到plist文件里面。
这里写图片描述
后面的字符串是授权时候回显示的字样
这里写图片描述

2016-01-22 09:14:56 wbxiaowangzi 阅读数 2119
  • FFmpeg音视频开发实战5 iOS/Android/windows/Linux

    本课程适合从事音视频,网络通讯开发的程序员。实战案例可用于 音视频处理,无人机,安防,直播等所有音视频领域。课程从Linux音视频采集,到TCP/IP UDP Socket服务器,客户端编程, 如何去定义网络通讯私有协议,x264,FFmpeg编解码,OpenGL ES渲染视频。OpenAL播放音频。到pcm实时转AAC,到H.264+AAC合成mp4, 整个流程,涵盖iOS,Android ,Mac 嵌入式Linux音视频相关绝大多数实用场景。以及Posix编程接口,C C++ Qt,FFmpeg跨平台开发,iOS,Android,Mac,linux,桌面软件都不再是障碍。让学员能够,融汇贯通掌握音视频领域相关知识,从事音视频相关职业,年薪轻松三四十万不是梦。 付费学员加入QQ群,可获得1~3年的专业解答,周六晚8:00 ~10:00 QQ群内部直播答疑, 以及就业指导,项目练习等服务.

    164299 人正在学习 去看看 陈超

  最近一个朋友在开发中遇到了一个奇怪的现象,他的App 需要获取用户位置,为了方便,给 CLLocationManager 单独封装到了一个类,然后代理和协议也在这个类里面实现,其他类需要获取地理位置的时候给调用一下提供的方法,我们都知道,获取用户地理位置 是需要用户给予权限的,但是这样写就遇到了一个问题,是否允许获取权限的 提示框在App启动之后 不到1 秒钟 就自动消失了,用户根本来不及操作,所以根本没有获取到用户权限,从而导致定位失败,试了各种办法之后都不行,后来我给  CLLocationManager 挪到了Appdelegate 里面,然后代理设置为 Appdelegate,回调也在appdelegate里面实现,这样,这个问题就解决了,提示框就不会出现闪现现象了。

2016-12-31 19:30:34 cabang6914 阅读数 403
  • FFmpeg音视频开发实战5 iOS/Android/windows/Linux

    本课程适合从事音视频,网络通讯开发的程序员。实战案例可用于 音视频处理,无人机,安防,直播等所有音视频领域。课程从Linux音视频采集,到TCP/IP UDP Socket服务器,客户端编程, 如何去定义网络通讯私有协议,x264,FFmpeg编解码,OpenGL ES渲染视频。OpenAL播放音频。到pcm实时转AAC,到H.264+AAC合成mp4, 整个流程,涵盖iOS,Android ,Mac 嵌入式Linux音视频相关绝大多数实用场景。以及Posix编程接口,C C++ Qt,FFmpeg跨平台开发,iOS,Android,Mac,linux,桌面软件都不再是障碍。让学员能够,融汇贯通掌握音视频领域相关知识,从事音视频相关职业,年薪轻松三四十万不是梦。 付费学员加入QQ群,可获得1~3年的专业解答,周六晚8:00 ~10:00 QQ群内部直播答疑, 以及就业指导,项目练习等服务.

    164299 人正在学习 去看看 陈超
iOS开发地图应用,模拟器不询问我是否能获得定位权限,就是没有那个弹窗询问了,这是为什么?
每次运行都要手动进到设置里去设置,是模拟器问题还是Xcode问题?还是设置问题?
2016-09-18 09:49:26 autom_lishun 阅读数 1949
  • FFmpeg音视频开发实战5 iOS/Android/windows/Linux

    本课程适合从事音视频,网络通讯开发的程序员。实战案例可用于 音视频处理,无人机,安防,直播等所有音视频领域。课程从Linux音视频采集,到TCP/IP UDP Socket服务器,客户端编程, 如何去定义网络通讯私有协议,x264,FFmpeg编解码,OpenGL ES渲染视频。OpenAL播放音频。到pcm实时转AAC,到H.264+AAC合成mp4, 整个流程,涵盖iOS,Android ,Mac 嵌入式Linux音视频相关绝大多数实用场景。以及Posix编程接口,C C++ Qt,FFmpeg跨平台开发,iOS,Android,Mac,linux,桌面软件都不再是障碍。让学员能够,融汇贯通掌握音视频领域相关知识,从事音视频相关职业,年薪轻松三四十万不是梦。 付费学员加入QQ群,可获得1~3年的专业解答,周六晚8:00 ~10:00 QQ群内部直播答疑, 以及就业指导,项目练习等服务.

    164299 人正在学习 去看看 陈超

升级iOS 系统之后,突然发现经常闪退,最后决定用Xcode 8试一下

最近开发的项目涉及到定位,蓝牙,相机等功能,发现程序在iOS10 上拍照和调相册会有闪退的现象

打个全局断点没有任何问题,系统这时给了我一条提示,提示如图

This app has crashed because it attempted to access privacy-sensitive data without a usage description.  The app's Info.plist must contain an NSContactsUsageDescription key with a string value explaining to the user how the app uses this data.


原来是相机的权限设置需要开发者 手动添加了,就和添加定位权限一样,

意思是说:你需要在info.plist文件 添加一个“NSContactsUsageDescription ”的Key,Value添加一个描述。


1,在项目中找到info.plist文件,右击有个 Open As,以Source Code 的形式打开

2,分别复制 以下 Value 和Key,Key 一定不能错,Value 貌似可以随便填写


相机权限描述:

    <key>NSCameraUsageDescription</key>
    <string>cameraDesciption</string>

通信录:
    <key>NSContactsUsageDescription</key>
    <string>contactsDesciption</string>

麦克风:
    <key>NSMicrophoneUsageDescription</key>
    <string>microphoneDesciption</string>

相机:
    <key>NSPhotoLibraryUsageDescription</key>
    <string>photoLibraryDesciption</string>


eg:其他权限描述,debug 控制台都会有输出的,自行添加就OK

3,Property List 的展现形式:



4,Clean之后,运行就OK了


地图定位异常问题

阅读数 259

没有更多推荐了,返回首页