string(7723) "{"docs":[{"id":"158579","text":"\u3010Python\u3011Tkinter\u56fe\u5f62\u754c\u9762\u8bbe\u8ba1\uff08GUI\uff09","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"HGNET","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183196","_id":"158579"},{"id":"158620","text":"python\u4e4bgui-tkinter\u53ef\u89c6\u5316\u7f16\u8f91\u754c\u9762 \u81ea\u52a8\u751f\u6210\u4ee3\u7801","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"darkspr","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183190","_id":"158620"},{"id":"158603","text":"python3.6 +tkinter GUI\u7f16\u7a0b \u5b9e\u73b0\u754c\u9762\u5316\u7684\u6587\u672c\u5904\u7406\u5de5\u5177","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"chenyuebai","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183187","_id":"158603"},{"id":"27850","text":"Python GUI\u4e4btkinter\u7a97\u53e3\u89c6\u7a97\u6559\u7a0b\u5927\u96c6\u5408\uff08\u770b\u8fd9\u7bc7\u5c31\u591f\u4e86\uff09 - \u6d2a\u536b","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"shwee","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183186","_id":"27850"},{"id":"158605","text":"Python GUI\u7f16\u7a0b(Tkinter) windows\u754c\u9762\u5f00\u53d1","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"itfat","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183184","_id":"158605"},{"id":"28228","text":"tkinter python\uff08\u56fe\u5f62\u5f00\u53d1\u754c\u9762\uff09","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"yudanqu","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183159","_id":"28228"},{"id":"158613","text":"Tkinter\u56fe\u5f62\u754c\u9762\u8bbe\u8ba1\uff08GUI\uff09","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"pywjh","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183158","_id":"158613"},{"id":"341361","text":"\u91cf\u5316\u5206\u6790\u83b7\u53d6\u6570\u636e\u76843\u79cd\u59ff\u52bf\uff08\u538b\u7bb1\u5e95\u7684\u795e\u5668Tushare\uff09","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"casual","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183069","_id":"341361"},{"id":"238879","text":"\u9762\u5411\u4ea4\u6613\u7684\u65e5\u5185\u9ad8\u9891\u91cf\u5316\u4ea4\u6613\u5e73\u53f0\u7b14\u8bb0","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"TaiYangXiManYouZhe","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183067","_id":"238879"},{"id":"238890","text":"2021 \u6700\u65b0\u91cf\u5316\u6295\u8d44\u4ea4\u6613\u8d44\u6e90\u6c47\u603b","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"xgqfrms","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1641183063","_id":"238890"}],"count":535118}"
array(2) {
["docs"]=>
array(10) {
[0]=>
array(10) {
["id"]=>
string(6) "158579"
["text"]=>
string(46) "【Python】Tkinter图形界面设计(GUI)"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(5) "HGNET"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183196"
["_id"]=>
string(6) "158579"
}
[1]=>
array(10) {
["id"]=>
string(6) "158620"
["text"]=>
string(60) "python之gui-tkinter可视化编辑界面 自动生成代码"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(7) "darkspr"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183190"
["_id"]=>
string(6) "158620"
}
[2]=>
array(10) {
["id"]=>
string(6) "158603"
["text"]=>
string(66) "python3.6 +tkinter GUI编程 实现界面化的文本处理工具"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(10) "chenyuebai"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183187"
["_id"]=>
string(6) "158603"
}
[3]=>
array(10) {
["id"]=>
string(5) "27850"
["text"]=>
string(80) "Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) - 洪卫"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(5) "shwee"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183186"
["_id"]=>
string(5) "27850"
}
[4]=>
array(10) {
["id"]=>
string(6) "158605"
["text"]=>
string(45) "Python GUI编程(Tkinter) windows界面开发"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(5) "itfat"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183184"
["_id"]=>
string(6) "158605"
}
[5]=>
array(10) {
["id"]=>
string(5) "28228"
["text"]=>
string(39) "tkinter python(图形开发界面)"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(7) "yudanqu"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183159"
["_id"]=>
string(5) "28228"
}
[6]=>
array(10) {
["id"]=>
string(6) "158613"
["text"]=>
string(34) "Tkinter图形界面设计(GUI)"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(5) "pywjh"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183158"
["_id"]=>
string(6) "158613"
}
[7]=>
array(10) {
["id"]=>
string(6) "341361"
["text"]=>
string(68) "量化分析获取数据的3种姿势(压箱底的神器Tushare)"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(6) "casual"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183069"
["_id"]=>
string(6) "341361"
}
[8]=>
array(10) {
["id"]=>
string(6) "238879"
["text"]=>
string(51) "面向交易的日内高频量化交易平台笔记"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(18) "TaiYangXiManYouZhe"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183067"
["_id"]=>
string(6) "238879"
}
[9]=>
array(10) {
["id"]=>
string(6) "238890"
["text"]=>
string(41) "2021 最新量化投资交易资源汇总"
["intro"]=>
string(288) "目录
ECharts
异步加载
ECharts
数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。
chart.setOption({
color: [
"
["username"]=>
string(7) "xgqfrms"
["tagsname"]=>
string(0) ""
["tagsid"]=>
string(0) ""
["catesname"]=>
string(0) ""
["catesid"]=>
string(0) ""
["createtime"]=>
string(10) "1641183063"
["_id"]=>
string(6) "238890"
}
}
["count"]=>
int(535118)
}
ZFPlayer 全屏、横竖屏使用小记 - 爱码网
关于这个库大家都不陌生,下面小结下自己使用过程中的经验,主要是关于全屏横竖屏的几个小点。
使用cell上直接播放的创建方式(先小屏播放,然后点击全屏按钮),全屏后完全取决于外部设置的全屏模式(强制改变后会有问题)
_player = [ZFPlayerController playerWithScrollView:self.tableView playerManager:playerManager containerViewTag:100];
使用普通模式实现下面的分享有效果
_player = [[ZFPlayerController alloc] initWithPlayerManager:playerManager containerView:[UIApplication sharedApplication].keyWindow];
全屏的两种方式
1、ZFPlayerController
[self.player enterFullScreen:YES animated:NO];
全屏 ZFPlayerControlView设置的全屏模式必须建立在player存在的情况下
2、ZFPlayerControlView
fullScreenOnly
全屏, 竖屏有全屏按钮 无返回按钮 必须到横屏才有返回按钮 设置的模式不再受影响
横竖屏的两个影响属性(ZFPlayerController)
1、 lockedScreen 默认NO
锁定屏幕, 什么操作都添加不了, 设置为YES时不论系统是否锁定竖屏 ,都可以按照预定的横竖屏显示
2、allowOrentitaionRotation 默认YES
是否允许播放器旋转 ,可以正常自定义添加标题、时间、返回按钮等等 ,设置为NO时不论系统是否锁定竖屏, 都可以按照预定的横竖屏显示。
设置为YES时,会根据手机旋转方向自动调整,但初始化时会按照自定义的方向初始化
- (ZFPlayerController *)player {
if (!_player) {
ZFAVPlayerManager *playerManager = [[ZFAVPlayerManager alloc] init];
_player = [[ZFPlayerController alloc] initWithPlayerManager:playerManager containerView:[UIApplication sharedApplication].keyWindow];
_player.controlView = self.controlView;
_player.disableGestureTypes = ZFPlayerDisableGestureTypesDoubleTap | ZFPlayerDisableGestureTypesPan | ZFPlayerDisableGestureTypesPinch;
_player.WWANAutoPlay = YES;
// 锁定屏幕 什么操作都添加不了
// _player.lockedScreen = YES;
// 不允许屏幕旋转
_player.allowOrentitaionRotation = NO;
@weakify(self)
_player.playerLoadStateChanged = ^(id<ZFPlayerMediaPlayback> _Nonnull asset, ZFPlayerLoadState loadState) {
if (loadState == ZFPlayerLoadStatePlaythroughOK) {
[UIView animateWithDuration:0.5 animations:^{
@strongify(self)
self.controlView.backgroundColor = [UIColor clearColor];
}];
}
};
}
return _player;
}
- (ZFPlayerControlView *)controlView {
if (!_controlView) {
_controlView = [[ZFPlayerControlView alloc] init];
// 全屏 竖屏有全屏按钮 无返回按钮 必须到横屏才有返回按钮
// _controlView.fullScreenOnly = YES;
}
return _controlView;
}
#pragma mark - Event
- (void)playVideo:(NSString *) videoUrl
videoSnapshotUrl:(NSString *) videoSnapshotUrl {
if (!videoUrl.length) {
return;
}
if (self.controlView) {
self.controlView = nil;
}
self.controlView.backgroundColor = [UIColor blackColor];
if (self.player) {
self.player = nil;
}
@weakify(self)
self.player.gestureControl.singleTapped = ^(ZFPlayerGestureControl * _Nonnull control) {
@strongify(self)
[UIView animateWithDuration:0.2 animations:^{
self.player.containerView.alpha = 0.5;
}completion:^(BOOL finished) {
[self.player stop];
self.player.containerView.alpha = 1;
self.player = nil;
}];
};
self.player.playerDidToEnd = ^(id _Nonnull asset) {
@strongify(self)
[self.player.currentPlayerManager replay];
};
// [self.player enterFullScreen:YES animated:NO]; 情况下必须放到这里 不然会失效 _controlView.fullScreenOnly = YES; 情况下不需要这样 但是竖屏无法返回 必须到横屏才有返回按钮
[self.controlView showTitle:@""
coverURLString:videoSnapshotUrl
fullScreenMode: ZFFullScreenModePortrait];
[self.player enterFullScreen:YES animated:NO];
self.player.currentPlayerManager.assetURL = [NSURL URLWithString:videoUrl];
}
- (void)playVideo:(NSString *) videoUrl
videoSnapshotUrl:(NSString *) videoSnapshotUrl
videoName:(NSString *) videoName
imageFormat:(iComeImageFormat) imageFormat{
if (!videoUrl.length) {
return;
}
if (self.controlView) {
self.controlView = nil;
}
self.controlView.backgroundColor = [UIColor blackColor];
@weakify(self)
self.controlView.backBtnClickCallback = ^{
@strongify(self)
[UIView animateWithDuration:0.2 animations:^{
self.player.containerView.alpha = 0.5;
}completion:^(BOOL finished) {
[self.player stop];
self.player.containerView.alpha = 1;
self.player = nil;
}];
};
if (self.player) {
self.player = nil;
}
self.player.playerDidToEnd = ^(id _Nonnull asset) {
@strongify(self)
[self.player.currentPlayerManager seekToTime:0 completionHandler:^(BOOL finished) {
[self.player.currentPlayerManager pause];
}];
};
[self.controlView showTitle:videoName
coverURLString:videoSnapshotUrl
fullScreenMode: (imageFormat == iComeImageFormatVertical ? ZFFullScreenModePortrait : ZFFullScreenModeLandscape)];
[self.player enterFullScreen:YES animated:NO];
self.player.currentPlayerManager.assetURL = [NSURL URLWithString:videoUrl];
}
- (void)playVideo:(NSString *) videoPath
coverImage:(UIImage *) coverImage {
if (!videoPath.length) {
return;
}
if (self.controlView) {
self.controlView = nil;
}
if (self.player) {
self.player = nil;
}
@weakify(self)
self.player.gestureControl.singleTapped = ^(ZFPlayerGestureControl * _Nonnull control) {
@strongify(self)
[UIView animateWithDuration:0.2 animations:^{
self.player.containerView.alpha = 0.5;
}completion:^(BOOL finished) {
[self.player stop];
self.player.containerView.alpha = 1;
self.player = nil;
}];
};
self.player.playerDidToEnd = ^(id _Nonnull asset) {
@strongify(self)
[self.player.currentPlayerManager replay];
};
[self.controlView showTitle:@""
coverImage:coverImage
fullScreenMode:ZFFullScreenModePortrait];
[self.player enterFullScreen:YES animated:NO];
self.player.currentPlayerManager.assetURL = [NSURL fileURLWithPath:videoPath];
}
相关文章:
-
2021-08-09
-
2021-10-16
-
2021-08-22
-
2021-09-07
-
2021-08-28
-
2019-03-01
-
2021-08-22
-
2021-10-16
猜你喜欢
-
2021-08-05
-
2018-06-14
-
2021-08-28
-
2021-10-16
-
2021-10-07
-
2021-08-07
-
2021-10-10
相关资源
-
下载
2021-06-07
-
下载
2022-12-19
-
下载
2021-06-05
-
下载
2021-06-05