Enums.swift 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727
  1. //
  2. // Enums.swift
  3. // PQSpeed
  4. //
  5. // Created by lieyunye on 2020/5/29.
  6. // Copyright © 2020 BytesFlow. All rights reserved.
  7. //
  8. import Foundation
  9. // MARK: - 视频播放页面类型
  10. /// 视频播放页面类型
  11. enum PQVIDEOPAGETYPE {
  12. case PQVIDEOPAGETYPE_Normal // 默认-单个视频详情
  13. case PQVIDEOPAGETYPE_RECOMM // 默认-推荐
  14. case PQVIDEOPAGETYPE_ATTEN // 关注
  15. case PQVIDEOPAGETYPE_DETAIL // 用户发布视频详情
  16. case PQVIDEOPAGETYPE_LIKEDETAIL // 我的喜欢视频详情
  17. case PQVIDEOPAGETYPE_ATTUSERDETAIL // 关注用户详情
  18. case PQVIDEOPAGETYPE_SEARCHDETAIL // 搜索详情
  19. case PQVIDEOPAGETYPE_HOTVIDEODETAIL // 热门视频详情
  20. case PQVIDEOPAGETYPE_GUIDEVIDEODETAIL // 引导视频详情
  21. case PQVIDEOPAGETYPE_SINGLEVIDEODETAIL // 单个视频详情
  22. case PQVIDEOPAGETYPE_RECREATDETAIL // 再创作详情页
  23. }
  24. // MARK: - 视频播放状态
  25. /// 视频播放状态
  26. enum PQVIDEO_PLAY_STATUS {
  27. case PQVIDEO_PLAY_STATUS_LOADING // 加载中
  28. case PQVIDEO_PLAY_STATUS_BEGIN // 开始播放
  29. case PQVIDEO_PLAY_STATUS_END // 播放结束
  30. case PQVIDEO_PLAY_STATUS_DISCONNECT // 重连失败
  31. case PQVIDEO_PLAY_STATUS_NOT_FOUND // 播放文件不存在
  32. case PQVIDEO_PLAY_STATUS_RECONNECT // 重连连接
  33. }
  34. // MARK: - 页面场景
  35. /// 页面场景
  36. public enum PAGESOURCE: String {
  37. /*************** 视频相关pageSource ***************/
  38. case sp_category = "speedApp-category" // 首页-单列
  39. case sp_category_recommend = "speedApp-category_recommend" // 由首页单列右划
  40. case sp_categoryDouble = "speedApp-categoryDouble" // 首页-双列
  41. case sp_videoDetail = "speedApp-videoDetail" // 视频详情页
  42. case sp_videoDetail_search = "speedApp-videoDetail_search" // 由搜索结果列表进入
  43. case sp_videoDetail_search_recommend = "speedApp-videoDetail_search_recommend" // 由搜索结果列表进入
  44. case sp_videoDetail_upload = "speedApp-videoDetail_upload" // 由我的tab中“作品”列表进入
  45. case sp_videoDetail_upload_recommend = "speedApp-videoDetail_upload_recommend" // 、由我的tab中“作品”列表进入
  46. case sp_videoDetail_favorite = "speedApp-videoDetail_favorite" // 由我的喜欢列表进入
  47. case sp_videoDetail_share = "speedApp-videoDetail_share" // 由我的分享列表进入
  48. case sp_videoDetail_favorite_recommend = "speedApp-videoDetail_favorite_recommend" // 由我的喜欢列表推荐
  49. case sp_userHomePage = "speedApp-userHomePage" // 用户个人主页
  50. case sp_videoDetail_userHomePage = "speedApp-videoDetail_userHomePage" // 由用户个人主页进入
  51. case sp_videoDetail_userHomePage_recommend = "speedApp-videoDetail_userHomePage_recommend" // 由用户个人主页进入
  52. case sp_recommendBottom = "speedApp-recommendBottom" // 底部展示的3个相关推荐视频
  53. case sp_follow = "speedApp-follow" // 关注tab
  54. case sp_follow_recommend = "speedApp-follow_recommend" // 由关注列表右划
  55. case sp_followSingle = "speedApp-followSingle" // 关注tab点击顶部个人头像进入某个人的关注
  56. case sp_followSingle_recommend = "speedApp-followSingle_recommend" // 关注tab点击顶部个人头像进入某个人的关注
  57. case sp_mine = "speedApp-mine" // 我的tab
  58. case sp_search = "speedApp-search" // 搜索页
  59. case sp_uploadVideo = "speedApp-uploadVideo" // 视频制作入口
  60. /*************** 活动相关pageSource ***************/
  61. case sp_activity_entranceButton = "speedApp_playActivity_entranceButton" // 活动活动入口按键
  62. case sp_activity_invite = "speedApp_playActivity_invite" // H5页面内邀请好友按键
  63. case sp_activity_threeDot = "speedApp_playActivity_threeDot" // APP右上角…按键
  64. case sp_activity_shareFriend = "speedApp_playActivity_shareFriend" // 进一步点击分享好友
  65. case sp_activity_shareMoment = "speedApp_playActivity_shareMoment" // 进一步点击分享朋友圈
  66. case sp_activity_openH5 = "speedApp_playActivity_completeOpenH5" // 当天完成活动的弹窗->去查看
  67. case sp_activity_openH5AndPayment = "speedApp_playActivity_completeOpenH5AndPayment" // 当天完成活动的弹窗->报名明日
  68. case sp_activity_failOpenH5 = "speedApp_playActivity_missionFailWindowOpenH5" // 未成功弹窗->继续活动
  69. case sp_activity_success_share = "speedApp_playActivity_missionSuccessWindow_share" // 成功弹窗->分享给好友炫耀下
  70. case sp_activity_entrance_close = "speedApp_playActivity_entrance_close" // 活动入口弹窗->关闭按钮
  71. case sp_activity_entranceWindow = "speedApp_playActivity_entranceWindow" // 活动入口弹窗
  72. case sp_activity_successWindow = "speedApp_playActivity_missionSuccessWindow" // 成功弹窗
  73. case sp_activity_failWindow = "speedApp_playActivity_missionFailWindow" // 未成功弹窗
  74. case sp_activity_completeWindow = "speedApp_playActivity_missionCompleteWindow" // 当天完成活动的弹窗
  75. /*************** 上传相关pageSource ***************/
  76. case sp_upload_videoSelect = "speedApp-upload_videoSelect" // 选视频-进入页面事件
  77. case sp_upload_coverSelect = "speedApp-upload_coverSelect" // 选封面-进入页面事件
  78. case sp_upload_videoPublish = "speedApp-upload_videoPublish" // 发布-进入页面事件
  79. /*************** tab点击相关pageSource ***************/
  80. case sp_categoryTabButton = "speedApp-categoryTabButton" // 首页tab
  81. case sp_followTabButton = "speedApp-followTabButton" // 关注tab
  82. case sp_uploadTabButton = "speedApp-uploadTabButton" // 上传tab
  83. case sp_mineTabButton = "speedApp-mineTabButton" // 我的tab
  84. case sp_msg_tabBtn = "speedApp_msgTabButton" // 消息tab
  85. /*************** 发布pageSource ***************/
  86. case sp_videoMaking = "speedApp-videoMaking" // 视频创作
  87. case sp_videoCompose_guid = "speedApp-videoCompose_guid" // 预览页面
  88. case sp_videoCompose_edit = "speedApp-videoCompose_edit" // 编辑页面
  89. case sp_videoCompose_overview = "speedApp-videoCompose_overview" // 总览页面
  90. case sp_videoCompose_composition = "speedApp-videoCompose_composition" // 合成页面
  91. case sp_material_search = "vlog-pages/user-videos-share" // 素材搜索上报
  92. /*************** 消息pageSource ***************/
  93. case sp_msg_shareSpace = "speedApp-message" // 分享空间
  94. case sp_msg_shareSpace_detail = "speedApp-message_shareSpace" // 分享空间详情
  95. case sp_msg_share = "speedApp-message_share" // 分享
  96. case sp_msg_like = "speedApp-message_like" // 喜欢
  97. case sp_msg_fans = "speedApp-message_fans" // 粉丝
  98. case sp_msg_push = "speedApp-message_push" // 通知
  99. /*************** 草稿箱相关pageSource ***************/
  100. case sp_draft_projectList = "speedApp-projectList" // 草稿箱列表
  101. case sp_reproduce_childList = "speedApp-reproduceCollection_child" // 再制作子列表页面
  102. case sp_reproduce_fatherList = "speedApp-reproduceCollection_father" // 再制作父列表页面
  103. case sp_reproduce_chilDetailList = "speedApp-videoDetail_reproduceCollection_child" // 再制作子列表页面
  104. case sp_reproduce_fatherDetailList = "speedApp-videoDetail_reproduceCollection_father" // 再制作父列表页面
  105. // add by ak
  106. case sp_speedApp_upload2Compose = "speedApp-upload2Compose" // 上传转创作
  107. /*************** 卡点视频相关pageSource ***************/
  108. case sp_stuck_selectMaterial = "speedApp-selectSyncedUpMaterial" // 卡点视频素材选择页
  109. case sp_stuck_selectSynceedUpMusic = "speedApp-selectSynceedUpMusic" // 卡点视频音乐选择页
  110. case sp_stuck_previewSyncedUp = "speedApp_previewSyncedUp" // 预览页面曝光上报
  111. case sp_stuck_searchSyncedUpMusic = "speedApp_searchSyncedUpMusic" // 音乐素材搜索页
  112. case sp_stuck_publishSyncedUp = "speeddApp_publishSyncedUp" // 合成发布页
  113. }
  114. // MARK: - objectType
  115. /// objectType
  116. enum objectType: String {
  117. /*************** tab点击相关pageSource ***************/
  118. case ot_home_tabBtn = "speedApp-categoryTabButton" // 首页tab
  119. case ot_follow_tabBtn = "speedApp-followTabButton" // 关注tab
  120. case ot_up_tabBtn = "speedApp-uploadTabButton" // 上传tab
  121. case ot_mine_tabBtn = "speedApp-mineTabButton" // 我的tab
  122. case ot_public_tabBtn = "speedApp-publicTabButton" // 发布tab
  123. case ot_msg_tabBtn = "speedApp_msgTabButton" // 消息tab
  124. /*************** 上传相关objectType ***************/
  125. case ot_up_backBtn = "speedApp-uploadBackButton" // 点击左下角叉子
  126. case ot_up_nextBtn = "speedApp-uploadNextButton" // 点击右下角下一步
  127. case ot_up_coverBtn = "speedApp-uploadCoverButton" // 点击上传封面
  128. case ot_up_pickCoverBtn = "speedApp-pickCoverButton" // 点击截取封面
  129. case ot_up_publishBtn = "speedApp-videoPublishButton" // 点击发布
  130. case ot_up_changeCoverBtn = "speedApp-changeCoverButton" // 点击选封面返回
  131. case ot_up_start = "speedApp-uploadStart" // 上传开始事件
  132. case ot_up_fail = "speedApp-uploadFail" // 上传中断/失败事件
  133. case ot_up_restart = "speedApp-uploadRestart" // 上传重试事件
  134. case ot_up_success = "speedApp-uploadSuccess" // 上传完成
  135. case ot_up_publishSuccess = "speedApp-videoPublishSuccess" // 发布完成
  136. case ot_up_viewPopup_guideUsersToShare = "speedApp_viewPopup_guideUsersToShare_pubishVideo" // 发布成功弹出分享界面
  137. case ot_up_clickWechatMoments_guideUsersToShare = "speedApp_clickWechatMoments_guideUsersToShare_pubishVideo" // 分享介面点击微信朋友圈
  138. case ot_up_clickWechat_guideUsersToShare = "speedApp_clickWechat_guideUsersToShare_pubishVideo"
  139. case ot_selectVideoProductionMode = "speedApp_viewWindow_selectVideoProductionMode"
  140. // 分享界面点击微信好友
  141. /*************** 创作工具相关objectType ***************/
  142. case ot_makevideo_video = "video" // 视频
  143. case ot_makevideo_gif = "gif" // 动态图
  144. case ot_makevideo_jpg = "jpg" // 图片
  145. case ot_enterComposeToolButton = "speedApp_enterComposeToolButton" // 点击上传tab后-点击发布视频 add by ak & 视频合成入口
  146. case ot_enterVideoUploadButton = "speedApp_enterVideoUploadButton" // 点击上传tab后-点击上传视频
  147. case ot_videoCompose_overviewButton = "speedApp_videoCompose_overviewButton" // 点击总览
  148. case ot_videoCompose_videoCompositeButton = "speedApp_videoCompose_videoCompositeButton" // 点击去发布
  149. case ot_videoCompose_videoPublish = "speedApp_videoPublishButton" // 发布视频
  150. case ot_speedApp_searchButton = "speedApp_searchButton" // 发布视频
  151. case ot_pageView = "pageView" // 页面访问
  152. //
  153. // 图文入口
  154. case ot_speedApp_clickButton_imageAndTextGenerateVideo = "speedApp_clickButton_imageAndTextGenerateVideo"
  155. // 电子相册
  156. case ot_speedApp_clickButton_electronicAlbum = "speedApp_clickButton_electronicAlbum"
  157. /*************** 消息相关objectType ***************/
  158. case ot_msg_fansMsgButton = "speedApp_msgTab_fansMsgButton" // 粉丝消息入口
  159. case ot_msg_likeMsgButton = "speedApp_msgTab_likeMsgButton" // 喜欢消息入口
  160. case ot_msg_shareMsgButton = "speedApp_msgTab_shareMsgButton" // 分享消息入口
  161. case ot_msg_commentMsgButton = "speedApp_msgTab_commentMsgButton" // 评论消息入口
  162. case ot_msg_systemMsgButton = "speedApp_msgTab_systemMsgButton" // 通知消息入口
  163. /*************** 消息详情相关objectType ***************/
  164. case ot_msg_shareSpaceViewTab = "speedApp_message_shareSpace_viewTab" // 分享空间详情页观看
  165. case ot_msg_shareSpaceLikeTab = "speedApp_message_shareSpace_likeTab" // 分享空间详情页喜欢
  166. case ot_msg_shareSpaceCommentTab = "speedApp_message_shareSpace_commentTab" // 分享空间详情页评论
  167. case ot_msg_shareSpaceShareTab = "speedApp_message_shareSpace_shareTab" // 分享空间详情页分享
  168. /*************** 草稿箱相关objectType ***************/
  169. case ot_draft_clicktButton = "speedApp_clickOpenProjectListButton" // 草稿箱点击入口
  170. case ot_draft_editProject = "speedApp_editProject" // - 点击 Project Item(草稿箱中的每个项目)
  171. case ot_draft_viewProject = "speedApp_viewProject" // - 看到 Project Item(草稿箱中的每个项目)
  172. case ot_draft_clickEditProject = "speedApp_clickEditProject" // - 点击 Project Item 弹出菜单的「编辑」按钮
  173. case ot_draft_clickPublishProject = "speedApp_clickPublishProject" // - 点击 Project Item 弹出菜单的「去发布」按钮
  174. case ot_draft_clickRenameProject = "speedApp_clickRenameProject" // - 点击 Project Item 弹出菜单的「重命名」按钮
  175. case ot_draft_clickCopyProject = "speedApp_clickCopyProject" // - 点击 Project Item 弹出菜单的「复制」按钮
  176. case ot_draft_clickDeleteProject = "speedApp_clickDeleteProject" // - 点击 Project Item 弹出菜单的「删除」按钮
  177. case ot_draft_uploadMaterial = "speedApp_uploadMaterial" // - 素材开始上传事件
  178. case ot_draft_uploadMatrialSuccess = "speedApp_uploadMatrialSuccess" // - 素材上传成功事件
  179. case ot_draft_downloadMaterial = "speedApp_downloadMaterial" // - 素材开始下载事件
  180. case ot_draft_downloadMaterialSuccess = "speedApp_downloadMaterialSuccess" // - 素材下载成功事件
  181. case ot_videoCompose_mux_complete = "speedApp_videoCompose_mux_complete" // 创作工具「合成成功」添加上报参数
  182. case ot_reproduce_collectionClicButton = "speedApp_clickReproduceButton_collection" // - 再创作集合页的「再创作按钮」
  183. case ot_reproduce_clickButton = "speedApp_clickReProduceButton" // 再创作按钮(右上角)点击上报
  184. case ot_reproduce_collectionBar = "speedApp_clickReproduceCollectionBar" // 再创作按钮(左下角)点击上报
  185. case ot_reproduce_collectionVideo = "speedApp_clickReproduceCollectionVideo" // 再创作集合页的「视频」点击上报
  186. case ot_reproduce_sameSourceButton = "speedApp_viewSameSourceButton" // 再创作查看同款来源按钮
  187. case ot_reproduce_saveProjectToDraftBox = "speedApp-saveProjectToDraftBox" // 创作工具「保存项目成功」添加上报参数
  188. // add by ak
  189. case speedApp_viewWindow_upload2Compose // 「上传转创作」:窗口曝光
  190. case speedApp_clickButton_upload2Compose_addMusic // 「上传转创作」:加音乐 - 按钮点击
  191. case speedApp_clickButton_upload2Compose_addText // 「上传转创作」:加语音 - 按钮点击
  192. case speedApp_clickButton_upload2Compose_addVoice // 「上传转创作」:加语音 - 按钮点击
  193. case speedApp_clickButton_upload2Compose_addCompose // 上传转创作」:加多段拼接 - 按钮点击
  194. case speedApp_clickButton_upload2Compose_processingVideo // 「上传转创作」:加工视频 - 按钮点击
  195. case speedApp_clickButton_upload2Compose_publish // 「上传转创作」:直接发布 - 按钮点击
  196. case speedApp_viewButton_uploadCoverButton // 「发布页」:修改封面 - 按钮曝光
  197. case speedApp_viewButton_uploadCoverTipButton // 修改封面提示 - 按钮曝光
  198. case speedApp_clickButton_uploadCoverButton // 「发布页」:修改封面 - 按钮点击
  199. case speedApp_clickButton_uploadCoverTipButton
  200. case speedApp_viewButton_addMusic // 「创作工具页」:添加音乐 - 按钮曝光
  201. case speedApp_clickButton_addMusic // 「创作工具页」:添加音乐 - 按钮点击
  202. case speedApp_viewButton_addMusicTip // 创作工具页」:添加音乐提示 - 按钮曝光
  203. case speedApp_clickButton_addMusicTip // 「创作工具页」:添加音乐提示 - 按钮点击
  204. /*************** 卡点视频相关objectType ***************/
  205. case ot_click_syncedUpMusic = "speedApp_clickButton_syncedUpMusic" // 弹出面板中点击「卡点视频」按键
  206. case ot_view_selectSyncedUpMaterial = "speedApp_viewWindow_selectSyncedUpMaterial" // 曝光上报:卡点视频素材选择页
  207. case ot_click_confirmMaterial = "speedApp_clickButton_confirmSyncedUpMaterial" // 点击上报:卡点视频素材确认按钮
  208. case ot_click_back = "speedApp_clickButton_back" // 点击上报:返回按钮
  209. case ot_view_selectSyncedUpMusic = "speedApp_viewWindow_selectSyncedUpMusic" // 曝光上报:卡点视频音乐选择页
  210. case ot_view_syncedUpMusic = "speedApp_viewButton_syncedUpMusic" // 曝光上报:音乐素材曝光
  211. case ot_click_auditionMusic = "speedApp_clickButton_auditionMusic" // 点击上报:音乐素材试听
  212. case ot_click_chooseMusic = "speedApp_clickButton_chooseMusic" // 点击上报:选择音乐素材
  213. case ot_click_chooseMusicCategory = "speedApp_clickButton_chooseMusicCategory" // 点击上报:选择音乐分类
  214. case ot_click_chooseMusicCategoryTag = "speedApp_clickButton_chooseMusicCategoryTag" // 点击上报:选择音乐分类下的 TAG
  215. case ot_view_previewSyncedUp = "speedApp_viewWindow_previewSyncedUp" // 曝光上报:预览页面曝光上报
  216. case ot_click_selectMusic = "speedApp_clickButton_selectMusic" // 点击上报:重新选择音乐
  217. case ot_click_selectRhythm = "speedApp_clickButton_selectRhythm" // 点击上报:选择节奏
  218. case ot_click_dragFront = "speedApp_clickButton_dragFront" // 点击上报:拖动拖拽条(左部分)
  219. case ot_click_dragBehind = "speedApp_clickButton_dragBehind" // 点击上报:拖动拖拽条(右部分)
  220. case ot_click_commit = "sppedApp_clickButton_commit" // 点击上报:去合成
  221. case ot_view_searchSyncedUpMusic = "speedApp_viewWindow_searchSyncedUpMusic" // 曝光上报:音乐素材搜索页
  222. case ot_click_searchSyncedUpMusic = "speedApp_clickButton_searchSyncedUpMusic" // 点击上报:用户在搜索框输入文字然后按回车
  223. case ot_view_searchMusic = "speedApp_viewButton_searchMusic" // 曝光上报:搜索结果音乐素材曝光
  224. case ot_click_auditionSearchMusic = "speedApp_clickButton_auditionSearchMusic" // 点击上报:试听音乐素材
  225. case ot_click_chooseSearchMusic = "speedApp_clickButton_chooseSearchMusic" // 点击上报:选择音乐素材
  226. case ot_view_publishSyncedUp = "speedApp_viewWindow_publishSyncedUp" // 曝光上报:窗口曝光
  227. case ot_click_shareWechat = "speedApp_clickButton_shareWechat" // 点击上报:分享微信
  228. case ot_click_shareWechatMoment = "speedApp_clickButton_shareWechatMoment" // 点击上报:分享朋友圈
  229. case ot_click_finished = "speedApp_clickButton_finished" // 点击上报:完成
  230. }
  231. // MARK: - 视频上报类型
  232. /// 视频上报类型
  233. enum businessType: String {
  234. /*************** 视频相关businessType ***************/
  235. case bt_videoView = "videoView" // 视频展示到屏幕,在此APP中 首页中:视频展示但未播放时,用于后端算法相关逻辑 相关推荐:在播放中下部展示出相关推荐的3个视频时,上报这3个视频的videoView。同一次播放下不重复上报3个推荐视频的videoView
  236. case bt_videoPreView = "videoPreView"
  237. case bt_videoPlaySlow = "videoPlaySlow"
  238. case bt_videoPlayError = "videoPlayError" // 播放失败
  239. case bt_aliasBindingError = "aliasBindingError" // 绑定别名失败
  240. case bt_videoPlaySuccessTime = "videoPlaySuccessTime" // 加载时长
  241. case bt_videoPlayException = "videoPlayException"
  242. case bt_videoPlay_normal = "videoPlay"
  243. enum bt_videoPlay: String {
  244. case bt_videoPlay_userSlideSingle = "userSlideSingle" // 用户在沉浸态下滑动切换视频(极速版、爱电影)
  245. case bt_videoPlay_userClickCover = "userClickCover" // 用户点击封面播放
  246. case bt_videoPlay_userSlideList = "userSlideList" // 用户在列表中滑动停止导致的播放
  247. case bt_videoPlay_autoNext = "autoNext" // 自动播放下一个视频
  248. case bt_videoPlay_autoStart = "autoStart" // 1、启动后自动播第一个视频 2、播放器出问题导致重新播放 3、别的页面返回之前的页面播放
  249. }
  250. case bt_videoShareH5 = "videoShareH5" // 点击分享朋友圈按键
  251. case bt_videoShareFriend = "videoShareFriend" // 点击分享好友按键
  252. case bt_videoSemiRealPlay = "videoSemiRealPlay" // 视频播放到10s时上报
  253. case bt_videoRealPlay = "videoRealPlay" // 视频播放到20s或播放到总时长30%,哪个先到为准
  254. case bt_videoPlaySuccess = "videoPlaySuccess" // 视频缓冲完成开始播放
  255. case bt_videoPlayEnd = "videoPlayEnd" // 视频播放到总时长100%
  256. case bt_videoFavorite = "videoFavorite" // 视频喜欢的上报
  257. case bt_videoEnterUser = "videoEnterUserHomepage" // 在视频页点击 Up 主头像进入个人主页
  258. case bt_videoSwipeRight = "videoSwipeRight" // 右滑查看视频的相关推荐
  259. case bt_videoEnterRecom = "videoEnterRecomendation" // 点击视频的相关推荐
  260. /*************** 活动相关businessType ***************/
  261. case bt_buttonClick = "buttonClick" // 按键点击
  262. case bt_buttonView = "buttonView" // 按键曝光
  263. case bt_windowView = "windowView" // 弹窗曝光
  264. case bt_autoJump = "autoJump" // 自动跳转
  265. case bt_pageView = "pageView" // 页面访问
  266. /*************** 供给稳定性相关businessType ***************/
  267. case bt_fetchSlow = "FetchSlow" // 拉取卡顿率
  268. case bt_fetchFail = "FetchFail" // 拉取失败率
  269. case bt_fetchDuration = "FetchDuration" // 拉取时长
  270. case bt_dnsParseCostTime = "dnsParseCostTime" // DNS上报 "speed.piaoquantv.com", "rescdn.yishihui.com"
  271. /*************** 上传相关businessType ***************/
  272. case bt_up_process = "videoUploadProcess" // 上传开始事件
  273. case bt_publish_error = "publishError" // 发布失败
  274. case bt_publish_success = "publishSuccess" // 发布成功
  275. /*************** 创作工具相关businessType ***************/
  276. case bt_makeVideos = "makeVideos" // 创作视频
  277. case bt_materialView = "materialView" // 素材曝光
  278. case bt_materialUse = "materialUse" // 用户选取
  279. case bt_materialCompose = "materialCompose" // 素材合成
  280. /*************** 消息相关businessType ***************/
  281. case bt_draft_downloadMaterialSuccess = "downloadMaterialSuccess" // 素材下载成功事件
  282. case bt_draft_downloadMaterial = "downloadMaterial" // - 素材开始下载事件
  283. case bt_draft_uploadMaterialSuccess = "uploadMaterialSuccess" // - 素材上传成功事件
  284. case bt_draft_uploadMaterial = "uploadMaterial" // - 素材开始上传事件
  285. case bt_videoCompose_muxAction = "muxAction" // 创作工具「合成成功」添加上报参数
  286. }
  287. // MARK: - autoType 自动动作的类型
  288. /// autoType 自动动作的类型
  289. public enum autoType: Int {
  290. case AUTO_TYPE_SCROLL_VERTICAL_DOWN = 11 // 用户手动下划触发播放(播上一个视频)
  291. case AUTO_TYPE_SCROLL_VERTICAL_UP = 12 // 用户手动上划触发播放(播下一个视频)
  292. case AUTO_TYPE_SCROLL_HORIZON_RIGHT = 13 // 用户手动右划触发播放
  293. case AUTO_TYPE_SCROLL_HORIZON_LEFT = 14 // 用户手动左划触发播放
  294. case AUTO_TYPE_ENTER_DETAIL = 15 // 用户手动点击(进详情页)触发播放
  295. case AUTO_TYPE_ENTER_APP = 21 // 打开APP自动播放的第一个
  296. case AUTO_TYPE_NEXT_AFTER_COMPLETE = 22 // 用户播放完一个视频后自动触发播放相关推荐视频
  297. case AUTO_TYPE_BACKEND_RESUME = 23 // 后台唤醒app,如果播放器挂了,重新播放、在别的页面播放过视频再回来之前的页面播放
  298. case AUTO_TYPE_REFRESH_LIST = 24 // 首页下拉刷新,自动播的第一个
  299. case AUTO_TYPE_CLICK_RECOMMEND = 25 // 点击推荐视频播放
  300. case AUTO_TYPE_CLICK_DOUBLE = 26 // 双列点击视频进入单列播放
  301. }
  302. // MARK: - 消息动作:表示该条日志属于某条消息生命周期的哪个漏斗环节
  303. /// 消息动作:表示该条日志属于某条消息生命周期的哪个漏斗环节
  304. enum actionType: String {
  305. case at_msg_backendReturn = "backendReturn" // 后端将消息返回给客户端
  306. case at_msg_frontendPull = "frontendPull" // 客户端获取到
  307. case at_msg_view = "view" // 在客户端消息被滑动展示在屏幕上
  308. case at_msg_click = "click" // 用户点击消息
  309. }
  310. // MARK: - 消息类型
  311. /// 消息类型
  312. enum messageType: Int {
  313. case mt_nomal = 0 // 未知消息
  314. case mt_fans = 1 // 粉丝消息
  315. case mt_like = 2 // 喜欢/赞
  316. case mt_share = 3 // 分享消息
  317. case mt_comment = 4 // 评论消息
  318. case mt_notification = 5 // 通知消息
  319. case mt_share_dynamics = 6 // 分享动态消息
  320. /*** 自定义添加不涉及正式消息类型 ***/
  321. case mt_badgeNumber = 1001 // 显示消息个数cell
  322. }
  323. /// 分享空间二级界面数据请求类型 1,观看 2,分享,3,喜欢 4, 评论
  324. enum sharePageType: Int {
  325. case share_page_play = 1 // 分享空间-播放列表
  326. case share_page_share = 2 // 分享空间-分享列表
  327. case share_page_favorite = 3 // 分享空间-收藏列表
  328. case share_page_commnet = 4 // 分享空间-评论列表
  329. }
  330. // MARK: - 消息子类型
  331. /// 消息子类型
  332. enum messageSubType: Int {
  333. case mtsub_nomal = 0 // 未知消息
  334. case mtsub_fansAtt = 101 // 粉丝-关注
  335. case mtsub_fansSbs = 102 // 粉丝-订阅
  336. case mtsub_likeColl = 201 // 喜欢-收藏视频
  337. case mtsube_likePrai = 202 // 喜欢-评论点赞
  338. case mtsub_shareWechat = 301 // 分享-微信会话
  339. case mtsub_shareFriend = 302 // 分享-微信朋友圈
  340. case mtsub_comment = 401 // 评论一级评论
  341. case mtsub_commentSub = 402 // 评论二级评论
  342. case mtsub_pushSucc = 501 // 通知-发布成功
  343. case mtsub_pushNoPass = 502 // 通知-审核不通过
  344. case mtsub_pushFixing = 503 // 通知-审核待修改
  345. case mtsub_pushTransFail = 504 // 通知-转码失败
  346. case mtsub_pushVideoRecom = 505 // 通知视频推荐
  347. case mtsub_pushAccForbi = 506 // 通知-账号封禁
  348. case mtsub_pushAccUnban = 507 // 通知-账号解封
  349. case mtsub_pushIncStart = 508 // 通知-激励开始
  350. case mtsub_pushIncEnd = 509 // 通知-激励结束
  351. case mtsub_pushIncRupt = 510 // 通知-激励中断
  352. case mtsub_shareSpace = 601 // 分享空间-分享
  353. case mtsub_shareSpLike = 602 // 分享空间-喜欢
  354. case mtsub_shareSpComm = 603 // 分享空间-评论
  355. case mtsub_shareSpPlay = 604 // 分享空间-播放
  356. case mtsub_shareSpMerge = 605 // 分享空间-外层合并消息(与业务逻辑无关,埋点上报使用)
  357. }
  358. // MARK: - 埋点上报消息类型(暂未统一)
  359. /// 埋点上报消息类型(暂未统一)
  360. enum messagePointType: Int {
  361. case mt_point_nomal = 0 // 未知消息
  362. case mt_point_fans = 1 // 粉丝消息
  363. case mt_point_praise = 2 // 赞
  364. case mt_point_barrage = 3 // 弹幕消息
  365. case mt_point_comment = 4 // 评论消息
  366. case mt_point_share = 5 // 分享消息
  367. case mt_point_collect = 6 // 收藏消息
  368. case mt_point_notification = 7 // 通知消息
  369. case mt_point_operative = 8 // 运营消息
  370. case mt_point_dynamics = 1000 // 分享动态消息
  371. }
  372. // MARK: - 日志库类型
  373. /// 日志库类型
  374. enum statisticsLogType: Int {
  375. case st_log_type_abtestinfo = 10 // abtestinfo-Log ABTEST的 dlog Store
  376. case st_log_type_operation = 20 // operation-Log 漏斗模型的相关上报
  377. case st_log_type_simpleevent = 30 // simpleevent-Log 独立事件的相关上报
  378. case st_log_type_frontend = 40 // frontend-Log 前端调试日志
  379. case st_log_type_pLayaction = 50 // pLayaction-Log 播放行为日志上报
  380. case st_log_type_useractive = 60 // useractive-Log 用户活跃日志上报
  381. case st_log_type_videoPlayTracking = 70 // video-play-tracking 视频播放行为跟踪
  382. case st_log_type_proauceSearch = 80 // proauce-search-log 素材搜索日志上报
  383. case st_log_type_videoCompose = 90 // video-compose-log 创作工具素材搜索日志上报
  384. case st_log_type_location = 100 // user-location-log 位置信息日志上报
  385. case st_log_type_videoProduction = 110 // video-production-log 创作工具埋点日志上报
  386. }
  387. // MARK: - 冷启动方式
  388. /// coldLaunchType // 冷启动方式。若为热启动,则不用上报该字段
  389. enum coldLaunchType: String {
  390. case coldLaunchType_userActiveOpen = "userActiveOpen" // 用户主动打开
  391. case coldLaunchType_appRecall = "appRecall" // 其它APP唤起,包括H5应用宝唤起
  392. case coldLaunchType_pushRecall = "pushRecall" // 推送唤起
  393. }
  394. // MARK: - 上报日志类型
  395. /// 上报日志类型
  396. enum reportLogType {
  397. case reportLogType_view // 显示页面
  398. case reportLogType_realPlay // 真实播放 视频播放到20s或播放到总时长30%,哪个先到为准
  399. case reportLogType_play // 记录播放的视频
  400. case reportLogType_Action // 上报视频动作记录
  401. case reportLogType_Frontend // 通用上报
  402. }
  403. // MARK: - 底部tab
  404. /// 底部tab
  405. public enum TAB_PAGETYPE: String {
  406. case TAB_PAGETYPE_NORMAL = "nomalTab" // 默认
  407. case TAB_PAGETYPE_RECOMM = "categoryTab" // 推荐
  408. case TAB_PAGETYPE_ATTEN = "followTab" // 关注
  409. case TAB_PAGETYPE_PUBLISH = "publishTab" // 发布
  410. case TAB_PAGETYPE_MESSAGE = "messageTab" // 消息
  411. case TAB_PAGETYPE_MINE = "mineTab" // 我的
  412. }
  413. // MARK: - 刷新控件类型
  414. /// 刷新控件类型
  415. public enum REFRESH_TYPE {
  416. case REFRESH_TYPE_ALL // 推荐
  417. case REFRESH_TYPE_HEADER // 头部
  418. case REFRESH_TYPE_FOOTER // 尾部
  419. }
  420. // MARK: - 刷新控件类型
  421. /// 刷新控件类型
  422. public enum moveDirection {
  423. case moveDirectionNormal
  424. case moveDirectionUp
  425. case moveDirectionDown
  426. case moveDirectionRight
  427. case moveDirectionLeft
  428. }
  429. // MARK: - 关注跟粉丝cell类型
  430. /// 关注跟粉丝cell类型
  431. enum atttendAndFansCellType {
  432. case cellType_attend // 关注
  433. case cellType_fans // 粉丝
  434. case cellType_banned // 黑名单
  435. }
  436. // MARK: - 视频全屏播放操作类型
  437. /// 视频全屏播放操作类型
  438. enum fullScreenActionType {
  439. case volume // 声音
  440. case brightness // 亮度
  441. case progress // 进度
  442. }
  443. // MARK: - 活动提示页类型
  444. /// 活动提示页类型
  445. enum activityRemindType {
  446. case nomal //
  447. case newUser // 新用户专享
  448. case yesterDay_finish // 昨日已完成
  449. case yesterDay_unfinish // 昨日未完成
  450. case today_finish // 今日任务已完成
  451. }
  452. // MARK: - 制作工具素材搜索msgType
  453. /// 制作工具素材搜索msgType
  454. enum material_msgType: String {
  455. case all = "ALL_SEARCH_EVENT" // 搜索所有
  456. case image = "IMAGE_SEARCH_EVENT" // 图片搜索
  457. case video = "VIDEO_SEARCH_EVENT" // 视频搜索
  458. case gif = "GIF_SEARCH_EVENT" // 动图搜索
  459. case recommend_image = "IMAGE_RECOMMEND_EVENT" // 图片推荐搜索
  460. case recommend_video = "VIDEO_RECOMMEND_EVENT" // 视频推荐搜索
  461. case recommend_gif = "GIF_RECOMMEND_EVENT" // 动图推荐搜索
  462. }
  463. // 画布类型
  464. enum videoCanvasType: Int {
  465. case origin = 1 // 原始
  466. case nineToSixteen = 2 // 9:16
  467. case oneToOne = 3 // 1:1
  468. case sixteenToNine = 4 // 16:9
  469. }
  470. /// 贴纸类型
  471. enum StickerType: String {
  472. case UNKONW = "unknow"
  473. case IMAGE = "image" // 图片
  474. case VIDEO = "video" // 视频
  475. case GIF = "gif" // gif动图
  476. case VOICE = "voice" // 声音
  477. case FILE = "file" // 文件
  478. case SUBTITLE = "subtitle" // 字幕
  479. /// 获取index
  480. /// - Returns: description
  481. func index() -> Int {
  482. var fileType: Int = 0
  483. switch self {
  484. case .IMAGE:
  485. fileType = 1
  486. case .VIDEO:
  487. fileType = 2
  488. case .VOICE:
  489. fileType = 3
  490. case .FILE:
  491. fileType = 4
  492. case .GIF:
  493. fileType = 5
  494. case .SUBTITLE:
  495. fileType = 6
  496. default:
  497. fileType = 0
  498. }
  499. return fileType
  500. }
  501. /// 媒体类型
  502. /// - Returns: <#description#>
  503. func mimeType() -> String {
  504. var mimeType: String = "application/octet-stream"
  505. switch self {
  506. case .IMAGE:
  507. mimeType = "image/jpeg"
  508. case .VIDEO:
  509. mimeType = "video/mpeg"
  510. case .VOICE:
  511. mimeType = "audio/mpeg"
  512. case .FILE:
  513. mimeType = "application/octet-stream"
  514. case .GIF:
  515. mimeType = "image/gif"
  516. default:
  517. mimeType = "application/octet-stream"
  518. }
  519. return mimeType
  520. }
  521. func pathExtension() -> String {
  522. var pathExtension: String = ""
  523. switch self {
  524. case .IMAGE:
  525. pathExtension = "png"
  526. case .VIDEO:
  527. pathExtension = "mp4"
  528. case .VOICE:
  529. pathExtension = "mp3"
  530. case .FILE:
  531. pathExtension = ""
  532. case .GIF:
  533. pathExtension = "gif"
  534. default:
  535. break
  536. }
  537. return pathExtension
  538. }
  539. }
  540. // MARK: - 贴纸裁剪方式
  541. /// 贴纸裁剪方式
  542. enum stickerContentModeDef: Int {
  543. case aspectFit = 0 // 自适应
  544. case aspectFill = 1 // 铺满
  545. }
  546. /// 贴纸裁剪方式 add by ak v2
  547. enum stickerContentMode: String {
  548. case aspectFitStr = "complete" // 完整显示(有黑边)
  549. case aspectFillStr = "full" // 铺满
  550. }
  551. // MARK: - 适配模式
  552. /// 适配模式
  553. enum adapterModeDef: Int {
  554. case speedyAuto = 0 // 快速自适应
  555. case loopAuto = 1 // 自动循环
  556. case crop = 2 // 定帧/裁剪
  557. }
  558. /// 适配模式 add by ak v2
  559. enum adapterMode: String {
  560. case multiple // 快速自适应
  561. case loopAuto = "loop" // 自动循环
  562. case staticFrame // 定帧/裁剪
  563. }
  564. // MARK: - 上传视频类型
  565. /// 上传视频类型
  566. enum videoUploadSourceType: String {
  567. case videoUpload // 上传
  568. case videoCompose // 合成制作
  569. case videoUploadToCompose // 上传转合成制作
  570. }
  571. // MARK: - 进入创作工具入口
  572. /// 素材上传、保存、收藏相关
  573. public enum videoMakeEntranceType: String {
  574. case entranceMineTabDraft = "draft_metab" // 我的Tab -> 草稿箱列表 -> 创作工具
  575. case entrancePublicTabDraft = "draft_uploadpopup" // 发布Tab -> 草稿箱列表 -> 创作工具
  576. case entrancePublicTabCompose = "composeVideo" // 发布Tab -> 视频合成 -> 创作工具
  577. case entrancePublicTabImageText = "imageTextGenerate" // 发布Tab -> 图文生成视频 -> 创作工具
  578. case entrancePublicTabAlbum = "electronicAlbum" // 发布Tab -> 电子相册 -> 创作工具
  579. case entranceReproduction = "reproduction" // 视频详情 -> 做同款 -> 创作工具
  580. case entrancePublicTabUpload = "upload" // 发布Tab -> 上传视频 -> 直接发布
  581. // add by ak
  582. case entranceUpload2compose = "upload2compose" // 发布Tab -> 上传视频 -> 加工视频 -> 创作工具
  583. case entranceStuckPointPublic = "syncedUpVideo" // 卡点视频发布
  584. // * 新添加-自定义
  585. case entrancePublicTabAddMusic = "addMusic" // 发布Tab -> 上传视频 -> 加音乐 -> 创作工具
  586. case entrancePublicTabAddSubtitle = "addSubtitle" // 发布Tab -> 上传视频 -> 加字幕 -> 创作工具
  587. case entrancePublicTabAddVoice = "addVoice" // 发布Tab -> 上传视频 -> 加语音 -> 创作工具
  588. case entrancePublicTabAddSection = "addSection" // 发布Tab -> 上传视频 -> 多段拼接 -> 创作工具
  589. }
  590. // MARK: - 段落类型
  591. /// 段落类型
  592. enum sectionType: String {
  593. case normal // 普通段
  594. case global // 全局段
  595. }
  596. // MARK: - 音乐类型
  597. /// 音乐类型
  598. enum VOICETYPT: String {
  599. case PRODUCE = "produce" // 合成语音
  600. case BGM = "bgm" // 背景音乐
  601. case SPEECH = "speech" // 录音
  602. case LOCAL = "local" // 导入文件
  603. }
  604. // MARK: - 输入框状态B
  605. /// 输入框状态
  606. enum inputStatus {
  607. case normal // 写故事,可智能配音,自动生成字幕
  608. case inputing // 输入中
  609. case recording // 语音识别成文字中…
  610. case recordEmpty // 录音未识别到文字,点此输入
  611. case recordError // 获取录音文字失败,请重试
  612. case recordSuccess // 获取录音文字成功
  613. }
  614. // MARK: - 画面比例
  615. /// 画面比例
  616. enum aspectRatio {
  617. case origin(width: CGFloat, height: CGFloat) // 原始
  618. case oneToOne // 1:1
  619. case sixteenToNine // 16:9
  620. case nineToSixteen // 9:16
  621. }
  622. // MARK: - 卡点视频音乐页面类型
  623. /// 卡点视频音乐页面类型
  624. enum stuckPointMusicContentType {
  625. case catagery
  626. case serach
  627. case page
  628. }
  629. // 视频发布来源场景 1:普通上传 2:创作工具,3:普通上传转创作工具,4:后台转换加工,5:卡点视频制作
  630. public enum videoFromScene: Int {
  631. case UploadNormal = 1 // 普通上传
  632. case UploadMakeVideo = 2 // 创作工具
  633. case UploadNormalToMakeVideo = 3 // 普通上传转创作工具
  634. case server = 4 // 后台转换加工
  635. case stuckPoint = 5 // 卡点视频制作
  636. }