既然 iOS 中“屏幕录像”是私有接口,那可不可以… - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
abelyao
V2EX    iDev

既然 iOS 中“屏幕录像”是私有接口,那可不可以…

  •  1
     
  •   abelyao
    abelyao 2016-01-08 17:39:52 +08:00 11191 次点击
    这是一个创建于 3574 天前的主题,其中的信息可能已经有所发展或是发生改变。
    依稀记得 2013 年的时候出现的 xRec 说是调用了私有接口,上架 App Store 当天就被下架了… 而且升级到下一个 iOS 之后又不能用了…

    这两天又出来一个屏幕录像的 APP 收费 30 元,虽说并没有特别贵,但使用频率低,加上又不知道什么时候就挂了…

    既然这样,那可不可以自己写一个 iOS APP 只给自己使用呢?就像 /t/249175 的 瓦工助手 一样呢?
    对 iOS 开发不了解,不知道可否实现?也不知道现在 iOS 9 是否还有接口?

    熟悉 iOS 的朋友可否来说一说?
    第 1 条附言    2016-01-08 18:12:17 +08:00
    36 条回复    2016-06-13 14:42:21 +08:00
    abelyao
        1
    abelyao  
    OP
       2016-01-08 17:40:48 +08:00
    顺便 @xiqingongzi 一下瓦工助手的作者… 因为我也不知道 V2 上还有谁做 iOS 开发的…
    MerenguesGeek
        2
    MerenguesGeek  
       2016-01-08 17:45:38 +08:00
    可以用私有 API 给自己的 App 用,只是不能通过审核而已。
    abelyao
        3
    abelyao  
    OP
       2016-01-08 17:49:32 +08:00
    @MerenguesGeek
    就像 瓦工助手 一样不上架,直接以开发者安装到手机上,或者通过 fir.im 传播,可行吗?
    LMkillme
        4
    LMkillme  
       2016-01-08 17:52:19 +08:00
    如果你半年前问这个问题,答案都还是「 NO 」,因为之前你要用真机调试必须注册开发者账号,每年 99 刀,比起 30 元的 App 贵多了,不过 Xcode7 出来后可以免证书真机调试,而自己用又不需要通过苹果审核,所以答案是「 YES 」, ps ,有时间想给自己写个拦截所有 App 内广告的应用,就像之前被苹果下架的那个 App 一样。
    dorentus
        5
    dorentus  
       2016-01-08 17:52:23 +08:00
    这两天的那个是自己实现了一个 AirPlay server (这个协议本身是非公开的,网上有些旧版的资料和参考实现,新版的我还没见过)

    通过这种方式,把屏幕镜像到自己的 app 里面,然后 app 才能实现录制。
    LMkillme
        6
    LMkillme  
       2016-01-08 17:52:50 +08:00
    @abelyao fir.im 传播需要企业账号,每年 299 美元。
    abelyao
        7
    abelyao  
    OP
       2016-01-08 17:56:02 +08:00
    @LMkillme 对,那个下架的 APP 出来的时候, Xcode 7 已经发布了,当时就在想… 这类工具以后是不是会越来越多呢… 或许有人就直接发布源码,需要的人自己真机调试安装…

    @dorentus 那天的帖子有看到评论,也是神思维,这种方法都想到了…


    @LMkillme 看来只要能实现就只有走真机调试的渠道来安装了,什么 fir.im 一类的也行不通咯
    v1024
        8
    v1024  
       2016-01-08 19:27:02 +08:00
    现在有个 app 可以录像,叫 Vidyo 。
    利用 AirPlay ,自己起了一个 Airplay 服务,手机连接之,然后录像,还支持后期裁剪和 gif
    abelyao
        9
    abelyao  
    OP
       2016-01-08 19:41:15 +08:00 via iPhone
    @v1024 就是我在主帖中到的收 30 元的 APP 啊
    goodbest
        10
    goodbest  
       2016-01-08 19:54:37 +08:00
    道理来讲是可以,但问题是根本没有源码...

    你看 XBMC 就可以用这种方式用 xcode 装到自己机器上了。
    GKLuke
        11
    GKLuke  
       2016-01-08 20:00:56 +08:00
    @v1024 不是已经下架了
    loveuqian
        12
    loveuqian  
       2016-01-08 20:03:20 +08:00 via iPhone
    可以啊
    有 mac 有源码就可以了
    abelyao
        13
    abelyao  
    OP
       2016-01-08 20:08:58 +08:00 via iPhone
    @goodbest @loveuqian
    iOS 不了解,我 APPEND 的份 GitHub 不知道是否有助?
    goodbest
        14
    goodbest  
       2016-01-08 20:58:08 +08:00
    @abelyao 你说的两个,应该都是录制该 app 运行时自己的视频,而不是录制别人的 app 运行时的视频。
    mornlight
        15
    mornlight  
       2016-01-08 21:13:57 +08:00
    iOS 里有很多私有 api 是可以调用的, Object-C 的 runtime 机制又很神奇,自己写个应用实现特殊效果完全没问题,用企业证书签发出去给其他人安装也没问题。
    abelyao
        16
    abelyao  
    OP
       2016-01-08 21:38:58 +08:00
    @goodbest 原来这样…

    @mornlight 企业证书签发 是指自有域名 + SSL 进行 IPA 直装吗?
    skx926
        17
    skx926  
       2016-01-08 22:53:57 +08:00
    @abelyao right,放 fir 上也可以
    skx926
        18
    skx926  
       2016-01-08 22:54:51 +08:00
    right, 企业证书打包好放 fir 上就行了
    abelyao
        19
    abelyao  
    OP
       2016-01-08 22:55:32 +08:00
    @skx926 那就是像 #6 @LMkillme 说的一样需要企业帐号 $ 299 咯…
    wanganjun
        20
    wanganjun  
       2016-01-08 23:30:14 +08:00
    如果只是单纯的录制显示的内容, quick time 就可以做到
    http://www.jianshu.com/p/fe887add14e5
    mornlight
        21
    mornlight  
       2016-01-08 23:54:44 +08:00
    @abelyao 必须的,没企业证书肯定不行,不然谁都能到处乱分发 App 了。
    参考 https://www.zhihu.com/question/23257754
    abelyao
        22
    abelyao  
    OP
       2016-01-09 00:30:52 +08:00 via iPhone
    @wanganjun 当然说的是在 iOS 设备上直接录制…

    @mornlight 谢谢!
    vincentxue
        23
    vincentxue  
       2016-01-09 02:13:57 +08:00   3
    iOS 9 已经有 ReplayKit 了,直接录就行了,不需要用私有 API 。我测试过。

    这里有测试代码,你可以试一试,需要在真机运行。

    https://gist.github.com/stollcri/732def91d09525deb49c

    另外有很多第三方游戏录屏的,我粗略看过 demo ,依赖当前的 OpenGL 环境,可能不符合你的需求。

    如果是系统级别的屏幕录像,那就要用私有 API 了。前两年我也研究过这个,给你一个链接参考。

    主要是通过 IOSurface 私有框架。

    https://github.com/coolstar/RecordMyScreen/blob/master/RecordMyScreen/CSScreenRecorder.m#L258

    open /System/Library/Frameworks/IOSurface.framework/Headers
    abelyao
        24
    abelyao  
    OP
       2016-01-09 02:23:19 +08:00
    @vincentxue 我想给你来 10 个感谢,可惜只能点一次!
    是的,就是想实现系统级别的屏幕录像(录像开始之后可以切换到其它 APP 去,并持续录像),非常感谢你直接给出了技术 keyword ,今天在网上搜了一圈都找不到一些合适的参考,让我这个完全没接触过 iOS 开发的一直是一头雾水…
    vincentxue
        25
    vincentxue  
       2016-01-09 02:49:28 +08:00
    @abelyao 不用客气。

    我刚才也在 Github 上运行了几个开源的,但是可惜在 iOS 9 上录出来的都是黑屏,但是声音是可以录的。不知道在低版本上会不会黑屏。估计这个方法已经被苹果屏蔽了吧。

    需要持续研究。
    ynyounuo
        26
    ynyounuo  
       2016-01-09 03:03:42 +08:00
    vincentxue
        27
    vincentxue  
       2016-01-09 03:16:22 +08:00
    @ynyounuo 你确定这个不是坑? 用这个证书打包的应用我见过好几个了,都是坑爹的 app 。

    我之前是想在 iPad 上干什么来着,去国外搜索应用也搜到到这个证书打包的应用,下载下来和宣传的功能完全不同。

    你这个应用我用测试机在飞行模式下载测试了了一下,进去就一个按钮,让去 App Store 下载别的应用。
    ynyounuo
        28
    ynyounuo  
       2016-01-09 03:31:01 +08:00
    @vincentxue
    坑的是哪些?这个倒不完全坑,的确可以录屏,但是除了录屏之外有没有什么下作的后台行为我倒是不知道,要求下载的是 Shou.tv ,原先可以在 iOS 8 上录屏,并不怎么好用。
    andyL
        29
    andyL  
       2016-01-09 14:04:42 +08:00   1
    我对于你提问的理解是,你有两个期望:
    1.开发出一个录屏 app
    2.能够分发出去
    ------
    针对第一点,虽然我是做 iOS 开发的,但是还只是写一般的企业级商业应用,对私有接口的使用也没有什么经验和研究,不能解决你的问题。

    针对第二点,我所知道的是苹果有一个企业级开发者账号,这种账号不能提供上架到 appstore 的签名证书,但是能够将 app 签名安装到 iOS 设备上。
    ( 1 )费用: 299 美元一年
    ( 2 ) App Store 上架:否 即该账号开发应用不能发布到 App Store ,只能企业内部应用。
    ( 3 )最大 uuid 支持数:不限制 安装到任意多台的设备上
    ( 4 )协作人数:多人
    然后这种账号申请需要严格一些的审核,但是淘宝上是有商家提供快速申请服务的。
    abelyao
        30
    abelyao  
    OP
       2016-01-09 14:11:26 +08:00
    @andyL 谢谢,关于企业分发,已经知道需要 299 刀,那干脆就不分发了,能通过 xcode 安装到手机上就行,如果真的做出来,就直接提供源代码,有需要的朋友自己通过 xcode 安装。现在是这样的思路。
    rebuilder
        31
    rebuilder  
       2016-01-09 14:50:31 +08:00
    问一句。通过第三方商店分发需要企业证书吗? 比如到 pp 助手上架
    erinsnow
        32
    erinsnow  
       2016-01-09 18:30:40 +08:00
    思路。其实这样也可以接受捐助。就跟 Mac 上不上架 mas 自己在网站卖产品或者接受捐助一样。
    abelyao
        33
    abelyao  
    OP
       2016-01-09 23:01:03 +08:00 via iPhone
    @erinsnow 但接 iOS ,不知何入手
    AAAAAvine
        34
    AAAAAvine  
       2016-02-18 17:26:13 +08:00
    我也是小白一只,
    只说下我知道的几种方法,
    第一种原生的支持,就是一台 ios ,一台 mac ,然后,用苹果自家技术就能够实现了。
    第二种 appstore 里面的,最近出了一款叫 vidyo 的 app , 5 刀,利用 AirPlay 镜像技术实现录制屏幕,目前国区没有,要换到米国,(如果感兴趣的可以赶紧下手,目测应该很快被下架吧)
    第三种借助电脑第三方软件咯,像 iTools 之类的,但 iTools 用过几次,支持不快,朋友推荐了一款叫作苹果录屏王的软件,倒是挺好用,也是利用 AirPlay 技术,这是这个是纯免费,能够同屏演示,还能录制画面,你可以试试看: http://www.apowersoft.hk/iphone-ipad-recorder
    Tyler1989
        35
    Tyler1989  
       2016-04-02 20:02:37 +08:00 via iPad
    我也想要一个直接在 iPad 上录制屏幕的 app
    linKnowEasy
        36
    linKnowEasy  
       2016-06-13 14:42:21 +08:00   1
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2889 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 13:45 PVG 21:45 LAX 06:45 JFK 09:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86