求助:premiere 2018 macCC2018显示Crash Report for后崩溃

Android和Ios的crash reporter(崩溃报告采集与上传)
Android和Ios的crash reporter(崩溃报告采集与上传)
Crash Report,这在大型软件开发领域是很常见的功能,就是能够当程序崩溃退出后,能够将崩溃时的信息,最好是携带dmp文件发送给服务器,这样开发人员既可以获得分发出去的客户端的崩溃率统计,也可以针对出现的错误进行及时的纠正,之前在PC的端游时代,这是很常见的做法,最近进行了在手游上的关于crash report的相关研究,并且为项目编写了一个相对完善的CrashReport模块。
Crash Report,这在大型软件开发领域是很常见的功能,就是能够当程序崩溃退出后,能够将崩溃时的信息,最好是携带dmp文件发送给服务器,这样开发人员既可以获得分发出去的客户端的崩溃率统计,也可以针对出现的错误进行及时的纠正,之前在PC的端游时代,这是很常见的做法,最近进行了在手游上的关于crash report的相关研究,并且为项目编写了一个相对完善的CrashReport模块。
这个模块的来源于手游项目正式上线,但是很多玩家反馈闪退,但是我们只能听到反馈闪退,却不能找到原因,只能凭脑袋去猜,是不是内存不够,机器配置太差,然后去尽可能优化性能,于是老大开始喊我们需要一个Crash Report, 于是就花2个星期完善了一个可以正式使用的Crash Repoter,项目基于Unity3D,在Android和Ios上做crash report 对我还是第一次,所以还是抱有了极大的兴趣。
1 Android 平台。
其实CrashReport也不应该是只有Crash了才Report,各种错误和潜在会导致Crash的问题也应该report上去。对于基于Unity3D的Android应用来说,自底到上可以分为三层:C++,Java和C#。 android是基于linux的系统,最底下的各种so a库就是C++的部分,android系统本身的相关逻辑则是java,U3D则使用了C#开发逻辑,所以我们采集问题也要从这三块分别着手。
c#的错误很好处理,这层U3D完全封装好了,C#层会出现warning error和exception,在android下这几种情况都不会导致crash,都会被UNITY3d接住,但是我们需要知道并报告给服务器,U3D有接口Application.RegisterLogCallback(),可以让C#层发生上面的问题时被我知道,我们只要写这个callback,然后在里面给服务器就行了。
java层的错误就是各种java exception,对于java,如果对于我们catch了的exception,不会导致crash,会按照我们的catch行为执行,对于那些我们没有catch的exception,是会crash的,还会在adblog上打印出来,我们需要获知这些exception,我们可以采用java中的接口Thread.setDefaultUncaughtExceptionHandler来重新设置这个对未catch的exeption的处理,在我们自己的handler中基本做的事情就是首先把这个exceptio报告给服务器,然后并不让程序退出,让程序尽可能活下去。
C++中出现的问题通常就是很严重的了,这里也分两种,一种是普通的一些异常,这取决于你是否catch了,如果没有catch,默认就是abort的,也就是crash了,还有一些比如对内存的非法访问,就直接在linux中产生了一个结束信号,把进程结束了,也是crash。对于C++我们先后尝试了两种方案,第一种就是采用捕获linux的信号量,程序异常退出总是有信号的,可以使用linux 下的sigaction来设置对这些信号的捕获处理,比如我们捕获了SIGILL SIGABRT SIGFPE SIGSEGV SIGPIPE SIGBUS SIGSTKFLT,这样对于异常的程序退出我们是知道的,可以在下次进入游戏时告知服务器,但是这样做有一个明显的问题就是我们只是知道程序crash了,但是没有trace
back,不知道在哪挂了,我们想要dump文件。于是后来采取的方法就是使用了google的breakpad框架,关于google breakpad,这是它的主页,https://chromium.googlesource.com/breakpad/breakpad/,关于他的基本原理,大家可以去看他的wiki和文档,很长,基本来说它是一个平台无关的C++的crash reporter,可以在crash后,生成dmp文件,然后利用它的一些工具获取堆栈的符号信息。
google breakpad在android的简单集成方法如下:
1.从http://google-breakpad.googlecode.com/svn/trunk拿到源码
2.建立你自己的jni工程
3.将google breakpad的android 和src两个文件夹放到你的工程里
4.配置你的Application.mk,里面要加入
APP_STL := stlport_static
APP_CPPFLAGS := -std=gnu++11 -D__STDC_LIMIT_MACROS
5.配置你的Android.mk,里面要加入以下的src文件
google_breakpad/src/client/linux/crash_generation/crash_generation_client.cc \
google_breakpad/src/client/linux/handler/exception_handler.cc \
google_breakpad/src/client/linux/handler/minidump_descriptor.cc \
google_breakpad/src/client/linux/log/log.cc \
google_breakpad/src/client/linux/dump_writer_common/thread_info.cc \
google_breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc \
google_breakpad/src/client/linux/microdump_writer/microdump_writer.cc \
google_breakpad/src/client/linux/minidump_writer/linux_dumper.cc \
google_breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc \
google_breakpad/src/client/linux/minidump_writer/minidump_writer.cc \
google_breakpad/src/client/minidump_file_writer.cc \
google_breakpad/src/common/android/breakpad_getcontext.S \
google_breakpad/src/common/convert_UTF.c \
google_breakpad/src/common/md5.cc \
google_breakpad/src/common/string_conversion.cc \
google_breakpad/src/common/linux/elfutils.cc \
google_breakpad/src/common/linux/file_id.cc \
google_breakpad/src/common/linux/guid_creator.cc \
google_breakpad/src/common/linux/linux_libc_support.cc \
google_breakpad/src/common/linux/memory_mapped_file.cc \
google_breakpad/src/common/linux/safe_readlink.cc \
还要加入LOCAL_STATIC_LIBRARIES += breakpad_client
以及include google_breakpad/android/google_breakpad/Android.mk
6.在你的crashreport模块初始化中(当然通常也可以在JNI_OnLoad中)初始化google breakpad,
google_breakpad::MinidumpDescriptor descriptor(path);
handler = new google_breakpad::ExceptionHandler(descriptor,
这里的path是你手机上存放dmp文件的文件夹,crash发生后,它会在这个文件夹内生成以UUID命名的dmp文件,当然前提你要保证这个文件夹真实存在。
7.最后编出你的so库,给程序使用。
这样我们就通过google breakpad实现了C++层的dump文件生成,当发生后,我们把dump文件传给服务器就行了。
最后关于这个dmp文件的解读,这里大家可以参考这份文档:https://www.chromium.org/developers/decoding-crash-dumps。这个解析要在linux环境下做,没有win的工具,基本就是两步骤,第一步是用工具将dmp的二进制文件转成可以看懂的文本格式,可以看到出错的地址,但是如果要想详细知道这些地址所代表的符号,还需要用里面的一个工具以及带有符号版本的so库才能知道,unity自己的库应该没有这种so库,但是也能大致看出问题处在哪了。
似乎到这里我们能够堵到android上所有可能崩溃的地方,然而并不是。至少有两种情况是还不行的,一是watch dog超时,二是内存资源不足。
watch dog超时:当你的主线程超过一段时间没有相应,android系统会将你的程序退出,内存资源不足:当android系统认为这个程序使用的内存过高时,会选择将这个退出,以释放内存。
这两种情况都是android系统的管理器按照一定的策略调度的,虽然玩家看到闪退了,但是这两种情况逻辑上都不属于异常退出,和你自己退出android进程是一样的,只不过是系统帮你退出了,所以用google breakpad或者信号都不能知道,因为这其实是正常退出,但是对于我们程序设计来说,这是异常。所以从捕获异常退出来说没有办法(当然也许真的有,我不知道,那欢迎大家批评指正),所以对这两种情况我们退而求其次使用当感知到有潜在的退出危险时报告给服务器警告的策略。
对于watch dog 超时,我们在java层开一个新的线程,不断的去探测主线程,当较长时间发现主线程没回应,我们给一个警告给服务器,并带上现在的内存情况,告知服务器这台机器主线程卡住很久了,很可能一会就被系统退出了,但是也可能运气好一会又好了。这种探测的方法我们可以正好用unity的在native层的UnitySendMessage机制,因为这个就是异步的,我们用另一个线程不断的给主线程的Unity用这个发送心跳包,unity收到后回复,很久没回复就是主线程卡住了(原因多了,比如某个逻辑特别特别耗时。。。)
对于内存太高,我们会在程序里定期检测一下内存,当发现使用的内存明显高过我们的设计时发给服务器,比如说我们认为PSS内存超过600M,当然如果有机器每到这个就崩了,那也不是我们的目标机型。在android系统下动态得到系统的总内和当前可用内存可以用activityManager.getMemoryInfo(),获取当前的进程的使用内存的接口可以用activityManager.getProcessMemoryInfo(new int[]{Process.myPid()})
通过这两种策略我们可以预防式的得到这两种情况的一个crash统计。
IOS只有C++和C#两层,对于C#来说,和Android是一模一样的,不用多说。
对于C++这层,我们当然还是可以继续使用google breakpad,因为它是跨平台的,但是其实Unity(至少从4.6开始)为ios已经提供了一个crash report模块,他需要我们将工程生成好后,将Crashreport.h里面的ENABLE_CUSTOM_CRASH_REPORTER设置为1,或者你可以直接在unity安装路径下找到这个文件直接改。这样在c++
crash后,unity会为我们生存crash文件,等下次启动后,可以通过crashreport这个模块访问这些dmp文件,这些dmp文件都是ios上的标准dmp文件,可以使用ios的开发工具symbolicatecrash来查看。unity内置的crash report其实也是采用了第三方的库plcrashreport来实现的,这个库在ios上的应用很多。
另外对于ios,其实也提供了一个函数NSSetUncaughtExceptionHandler
,用来当那些未捕捉的异常发生时,进入这个处理,可以拦截一些东西,但是一些比如内存访问错误直接就退出了,不会进到这里,另外进到这里之后程序还是会退出,只是让我们可以记录一下,不过有了unity自带的crashreport 这个也就没啥用了。
还有在unity对ios的c#运行中,在player
setting里面有个对代码的运行优化,选择slow but safe 还是fast but no exception,如果选择前者,所有c#的执行错误都会像脚本一样被catch住,会报c#的exception,如果后者就不会,就直接不catch了,会造成程序退出,但是运行效率是高的,我们通常选择slow but safe。这是mono架构的特性。
通过对ios 和android的崩溃的采集和报告,有助于了解我们程序在用户手中的稳定性和及时改进。
用云栖社区APP,舒服~
【云栖快讯】直播推荐——现在报名3月12日编程语言系列讲座,与行业资深专家一起学习Python、C++、JavaScript、Java!还可在活动页面领取红包,百分百中奖哦!&&
移动测试(Mobile Testing)是为广大企业客户和移动开发者提供真机测试服务的云平台...
阿里云移动APP解决方案,助力开发者轻松应对移动app中随时可能出现的用户数量的爆发式增长、...
针对日志类数据的一站式服务,用户无需开发就能快捷完成数据采集、消费、投递以及查询分析等功能,...
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效...讓您的下一件巨作呈現在所有螢幕上。
請使用 Premiere Pro CC 這套領先業界的視訊編輯軟體,將原始視訊素材轉變成完美的作品。不論您是剛起步的新手還是經驗老到的專家,都可以在一個流暢、整合的工作流程中,輕鬆進行編輯、調整顏色、潤飾音效等作業。
以 Adobe Creative Cloud 附屬內容的方式取得 Premiere Pro,只要
Loading.../月
以您的方式,訴說您的故事。
從電影製作人、YouTuber 網紅、攝影師到設計師,每個要訴說故事的人都是使用 Premiere Pro,也包括您。
小螢幕製作。
大場面巨作。
不論您打算製作什麼內容,請使用與好萊塢專業人員相同的應用程式。開始製作影音部落格、在 YouTube 上爆紅,或成為行動攝影師。從任何攝影機或手機匯入素材、修剪視訊片段、加上標題和調整音訊。利用直覺的工具和大量的逐步教學課程,您將能快速地完成出色作品。
在大螢幕上呈現壯觀的效果。
正在進行您的下一件傑作嗎?Premiere Pro 是唯一的非線性編輯器,能夠讓您開啟多個專案,同時還能與您的團隊協作一個專案。此外,您還可以鎖定專案,讓其他人無法變更。顏色、圖形、音訊和身歷其境的 360/VR 的工作流程,將帶領您以更快的速度從最初剪輯到完成最終作品。
任何攝影機。任何格式。
從 8K、虛擬實境到智慧型手機,任何格式的素材都能使用。業界最廣泛的原生媒體支援和強大的代理工作流程,使您不論素材來自何處,都能立即在任何電腦上輕鬆開始編輯。
與其他工具完美搭配運作。
在 Premiere Pro 和 Adobe After Effects CC 之間輕鬆切換。有了 Adobe Dynamic Link,您再也不必等待演算。Premiere Pro 還能與其他 Creative Cloud 應用程式完美搭配運作,包括 Photoshop、Illustrator 及 Adobe Media Encoder。此外,使用 Adobe 團隊專案,全球的編輯者都能自由地協作、安全地共用及進行更多其他作業。
看看新功能所賦予的能力。
Premiere Pro 會定期推出新功能,不斷追求進步。只要擁有 Creative Cloud 會籍,當新功能一發佈,您就能立即獲得。這裡有一些最新的更新。
同時進行多個專案
在影集或場景之間快速切換、編輯某個專案的各部分後再複製到另一個專案,以及執行其他更多作業。
帶有鎖定功能的共用專案
同一場所內的團隊可以同時存取單一專案。為了進行版本控制,您可以在主動編輯時鎖定專案並授與其他用戶唯讀權限。
比以往更具互動性的互動式設計
現在您的動態圖形可以自動配合時間和比例或位置變更,因此片頭和片尾會加以保留,沒有任何部分會超出影格。
身歷其境的 360/VR 視訊和音訊編輯
以戴上 VR 頭盔所見景況,編輯身歷其境的 VR。加入虛擬實境效果和轉場效果而不會造成扭曲。編輯根據方向使用音效的 360/VR 內容。
輕鬆快速地開始使用。
利用我們的逐步教學課程,立即投入創作。
為何要線上購買?
您的資料更安全
所有的線上信用卡交易,都已透過SSL技術,以及電子交易領域目前最安全的加密技術,進行嚴密的保全。
沒有其他隱藏費用
最真實的產品價格。Creative Cloud產品以數位方式下載提供,完全不需要運費。同時所有定價,皆已包含相關稅金。
14天內保證退費
改變心意嗎?在購買14天內取消您的訂單,將可以取得全額退費。無需承諾任何條件。
24小時都能便利取得
端坐家中或隨時隨地,就能輕鬆研究、比較及購買所需要的產品。不用等待商店開門,同時也無需承受銷售人員的壓力。
尋找符合您需求的計劃。
Adobe Premiere Pro CC 單一應用程式
以 Creative Cloud 附屬內容的方式取得 Premiere Pro,每月只要 NT$640。
Creative Cloud 完整應用程式
取得 Premiere Pro 和全套創意應用程式,每月只要 NT$1,620。
學生和教師
購買全套 Creative Cloud 應用程式可享四折優惠。每月只要 NT$640。
領先業界的創意應用程式,不僅授權管理簡單且部署輕鬆。攜手合作效率更勝以往 - 每位用戶每月只要 NT$914。
Make it. Creative Cloud.
Premiere Pro 是 Creative Cloud 的一部分,因此您可以直接在應用程式中存取自己的所有資產,包括動態圖形範本及 視訊。您可以跨越桌上型電腦、行動裝置以及其他應用程式 (例如 After Effects、Audition 等等),將所有的一切都連接在一起。只要有它,您隨時隨地都可以將靈感轉化為令人驚艷的影片。
Europe, Middle East and Africa
Asia Pacific更多频道内容在这里查看
爱奇艺用户将能永久保存播放记录
过滤短视频
暂无长视频(电视剧、纪录片、动漫、综艺、电影)播放记录,
按住视频可进行拖动
&正在加载...
收藏成功,可进入
查看所有收藏列表
当前浏览器仅支持手动复制代码
视频地址:
flash地址:
html代码:
通用代码:
通用代码可同时支持电脑和移动设备的分享播放
用爱奇艺APP或微信扫一扫,在手机上继续观看
当前播放时间:
一键下载至手机
限爱奇艺安卓6.0以上版本
使用微信扫一扫,扫描左侧二维码,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:
设备搜寻中...
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
连接失败!
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
部安卓(Android)设备,请点击进行选择
请您在手机端下载爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:
爱奇艺云推送
请您在手机端登录爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
180秒后更新
打开爱奇艺移动APP,点击“我的-扫一扫”,扫描左侧二维码进行登录
没有安装爱奇艺视频最新客户端?
premiere cc2017/cc2018/cc2019教程视频入门到精通pr
正在检测客户端...
您尚未安装客户端,正在为您下载...安装完成后点击按钮即可下载
30秒后自动关闭
premiere cc2017/cc2018/cc2019教程视频入门到精通pr">premiere cc2017/cc2018/cc2019教程视频入门到精通pr
请选择打赏金额:
播放量12.7万
播放量数据:快去看看谁在和你一起看视频吧~
更多数据:
热门短视频推荐
Copyright (C) 2018 & All Rights Reserved
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制
正在为您下载爱奇艺客户端安装后即可快速下载海量视频
正在为您下载爱奇艺客户端安装后即可免费观看1080P视频
&li data-elem="tabtitle" data-seq="{{seq}}"& &a href="javascript:void(0);"& &span>{{start}}-{{end}}&/span& &/a& &/li&
&li data-downloadSelect-elem="item" data-downloadSelect-selected="false" data-downloadSelect-tvid="{{tvid}}"& &a href="javascript:void(0);"&{{pd}}&/a&
选择您要下载的《
色情低俗内容
血腥暴力内容
广告或欺诈内容
侵犯了我的权力
还可以输入
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制Adobe Premiere Pro CC 2018中文破解版 Mac版
下载帮助本站软件均来自互联网, 如有侵犯您的版权, 请与我们联系。
* 为了达到最快的下载速度,推荐使用下载本站软件。
* 请一定升级到最新版才能正常解压本站提供的软件!
* 相关网站事务请留言:
或通知我们!或加我们微信公众号:xz7_cngr
Copyright &
. All Rights Reserved轻松一扫,精彩不停
扫描下载APP
正在学习:
感谢你的评价,我们会继续努力!
恭喜,你已学完本节课程!
感谢你的评价,我们会继续努力!
写点什么吧,你的感受对其他同学有很大帮助噢
字数限250字以内
Adobe Audition CC2017基础训练教程
1225人已学
Photoshop CS5入门到高级基础自学原创培训教程 爱涛杨涛教程
flash CS5入门基础到提高基础教程 爱涛杨涛教程 原创自学培训
购买后可以学习整个课程
&课程信息&
课程价格:219.00元
购买人数:18人
学生满意度:100%
直播倒计时:09小时52分15秒
上课时间:
线下课倒计时:09小时52分15秒
扫码下载APP
CC2018及更高版本图形介绍
您好,因百度传课业务模式升级,目前暂停付费视频课程购买服务
影视后期爱好者
(教程配套素材请购买后联系客服获取 旺-爱涛专卖行 Q-)对于初学者来讲,应该从基础的剪辑开始,工具作为学习的起点,从我们的每一堂课中去总结技巧和知识点,最终您能发现自己的长处,形成自己的设计风格,教程持续更新且全面详细系统讲解,亲?您还犹豫什么?
杨涛 Adobe认证产品专家,Core认证产品专家,影视后期设计师,创意设计师,从事创意设计、影视后期等工作多年!原创速成到精通系列教程!具有丰富的教学与实战经验!
第1章入门理论基础篇
01-教程介绍试看预览
可试听整节
Premiere项目文件介绍
可试听整节
认识Premiere工作区
可试听整节
工作区调整与自定义
可试听整节
了解Premiere工作流程
可试听整节
新建项目与序列讲解
常规素材的导入与管理
Premiere时间码详解
视频输出与注意事项
杨涛教程91sir章节总结
第2章编辑技能初级篇
关于新建序列技巧讲解
项目素材失效重新链接
媒体浏览器面板详解
收录设置创建代理讲解
信息与元数据面板介绍
项目文件查找搜索隐藏
视频比例与黑边去除方法
跟我一起走进时间轴的世界
时间轴标记的使用
时间轴显示设置
时间轴轨道基本控制
撤消重做与历史记录
第3章编辑技能进阶篇
走进节目监视器的世界
走进源监视器的世界
插入覆盖与自动匹配序列
目标轨道的设定
提升提取与同步锁定
序列嵌套在编辑中的应用
小试牛刀混剪案例练习
时间轴查漏补缺性延伸
常用工具与编组讲解
工具面板详解
三点四点编辑
理解剪辑类型
键盘快捷键使用与定义
第4章剪辑案例延伸篇
视频剪接倒放与定格拍照
视频分镜头剪辑演示
创意剪辑之穿墙特效案例
创意剪辑之动物快过来案例
创意剪辑之巴拉小魔仙变身
创意剪接之时间静止合成案例
PSD格式文件导入详解
一人分饰多个角色剪接案例
利用Ps创作剪辑边框
Alpha通道视频输出与应用
灵活运行素材及所学知识
第5章效果动画进阶篇
效果控件之不透明度
效果控件之运动属性
剪辑画中画与小球弹跳动画
效果控件之时间重映射
效果控件之蒙版
制作边框与倒影效果
将剪辑嵌入到屏幕效果
3D轮播动画之边框倒影投影
3D轮播动画之收缩淡出效果
3D轮播动画之相册轮播效果
酷炫3D相册图片轮播动画效果
Pr项目模板的导出与套用
Pr与Ae配合创作方法
第6章转场音频深化篇
跟我一起走进转场的世界
转场与效果的灵活运用
Morphcut转场修复演讲视频
效果的预设及管理
跟我一起走进音频的世界
音频类型与Audition中编辑
音频效果与过渡
音轨混合器与子混合
音频剪辑混合器与右键菜单
左右声道音视频制作案例
杨涛教程91sir章节总结
第7章标题图形字幕篇
跟我一起走进字幕的世界
字幕设计之窗口功能介绍
字幕设计之编辑与工具
字幕设计之对齐与分布
字幕设计之旧版标题属性
字幕设计之旧版标题样式
创建滚动或游动标题字幕
灵活运用标题字幕创作
隐藏开放式对白字幕介绍
CC2018及更高版本图形介绍
文本形状剪辑图层详解
基本图形菜单面板功能详解
第8章进阶巩固案例篇
打字机逐字显示打字效果
延伸制作歌词走字效果案例
震撼火焰字出场特效案例
静态与动态跟踪马赛克案例
古装墨迹笔刷开场效果案例
微微一笑很倾城人物消失案例
影视画轴打开关闭动画案例
影视片尾致谢字幕创作案例
解决手机图片视频黑边不满屏
影视后期国语配音案例
帧定格停留快门音拍照案例
画面局部放大镜跟随放大案例
浪漫唯美信封飘荡展示案例
震撼logo标志出场片头案例
光谱展现震撼片头创作案例
本章结束教程宣传片案例
第9章多机位VR插件篇
关于多机位编辑的介绍
多机位编辑工作流程
使用多机位源序列对话框
多机位作品粗剪与精剪
红巨人插件套装安装演示
Plural Eyes音视频自动同步
了解Premiere VR虚拟现实
项目面板新建项功能梳理
生成闪电对决效果小案例
变形稳定器效果稳定剪辑
视频添加与去除水印讲解
节目源面板按钮功能梳理
NewBlueFX插件安装演示
ProDAD插件安装演示
震撼动感片头之出场字幕
震撼动感片头之出场剪辑
震撼动感片头之剪辑展示
课程暂无资料
字数限400字符内
字数限400字符内
该机构的同类课程
该机构的热门课程
1849 人已学
1225 人已学
763 人已学
725 人已学

我要回帖

更多关于 premiere 2018 的文章

 

随机推荐