删除埋点,im和客服
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
import 'package:analytics_sdk/enum/video_event_enum.dart';
|
||||
import 'package:extended_nested_scroll_view/extended_nested_scroll_view.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
@@ -17,7 +16,6 @@ import 'package:video_player/video_player.dart';
|
||||
|
||||
import '../../../hj_model/acg/comic_chapters_model.dart';
|
||||
import '../../../hj_model/cartoon_media_info.dart';
|
||||
import '../../../track_event_manager/track_manager.dart';
|
||||
import '../../../alert/video/share_media_dialog.dart';
|
||||
import '../../cartoon/cartoon_recommend_page.dart';
|
||||
import 'cartoon_episode_menu_alert.dart';
|
||||
@@ -103,8 +101,6 @@ class _VideoDetailCartoonViewState extends State<VideoDetailCartoonView>
|
||||
child: AdsGridView(
|
||||
6,
|
||||
padding: EdgeInsets.only(left: 12, bottom: 18),
|
||||
exposureModel:
|
||||
AdExposureModel(pageType: TrackEventPageType.videoPlay),
|
||||
),
|
||||
),
|
||||
SliverToBoxAdapter(child: _buildTitleMenu()),
|
||||
@@ -143,9 +139,8 @@ class _VideoDetailCartoonViewState extends State<VideoDetailCartoonView>
|
||||
);
|
||||
}
|
||||
|
||||
/// 分享:带播放器上报埋点(进度/时长),再弹分享面板
|
||||
/// 分享:弹分享面板
|
||||
void _onShare() {
|
||||
TrackVideoManager.send(VideoEventEnum.VIDEO_SHARE, videoModel, widget.playCtr);
|
||||
Get.dialog(ShareMediaDialog(videoModel: videoModel));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:analytics_sdk/enum/video_event_enum.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:get/get.dart';
|
||||
@@ -38,7 +37,6 @@ import '../../tools_base/debug_log.dart';
|
||||
import '../../tools_base/event_bus/event_bus_util.dart';
|
||||
import '../../tools_base/event_bus/events.dart';
|
||||
import '../../tools_base/global_store/store.dart';
|
||||
import '../../track_event_manager/track_manager.dart';
|
||||
import '../main_page/provider/msg_provider.dart';
|
||||
import '../pre_sale/pre_sale_provider.dart';
|
||||
|
||||
@@ -342,7 +340,6 @@ class VideoLogic extends GetxController with GetSingleTickerProviderStateMixin {
|
||||
/// 注:贴片广告期间不直接 play,由广告结束回调触发本方法(见 video_page.dart 的 onFinish)
|
||||
void play() {
|
||||
if (isDispose || isShowAd) return; // 有贴片广告时不自动播,等广告结束回调
|
||||
TrackVideoManager.send(VideoEventEnum.VIDEO_PLAY, videoModel, playerCtr, isPreVideo: _isPreview());
|
||||
playerCtr?.play();
|
||||
_startPayGuideTimer(); // 需付费的起播满3秒 → 前置购买引导(场景1);不满足条件的它自己会挡
|
||||
}
|
||||
@@ -399,7 +396,6 @@ class VideoLogic extends GetxController with GetSingleTickerProviderStateMixin {
|
||||
try {
|
||||
await playerCtr?.initialize();
|
||||
if (isRetry) confirmPlatformView(); // 仅重试成功(同视频 textureView 挂、platformView 放出)才落本地
|
||||
TrackVideoManager.send(VideoEventEnum.VIDEO_VIEW, videoModel, playerCtr, isPreVideo: _isPreview());
|
||||
update();
|
||||
} catch (e) {
|
||||
debugLog("视频初始化失败:$e play url = $videoUrl");
|
||||
@@ -469,9 +465,6 @@ class VideoLogic extends GetxController with GetSingleTickerProviderStateMixin {
|
||||
return;
|
||||
}
|
||||
int duration = playerCtr?.value.duration.inSeconds ?? 0;
|
||||
if (duration > 0 && playerCtr!.value.position.inSeconds >= duration - 1) {
|
||||
_trackComplete();
|
||||
}
|
||||
if (_hasFreeWatchRight) return; // 免费次数/免费区/动漫已购/免费章节/VIP金币限免,整片随便看
|
||||
if (!_isPreview()) {
|
||||
//每帧都走这里,videoStatus 是重算 getter,只读一次
|
||||
@@ -572,15 +565,9 @@ class VideoLogic extends GetxController with GetSingleTickerProviderStateMixin {
|
||||
return videoModel?.previewURL?.isNotEmpty == true && videoStatus.isNeedPay;
|
||||
}
|
||||
|
||||
/// 上报当前视频播放结束(切视频/切集/退页统一入口)
|
||||
void _trackComplete() {
|
||||
TrackVideoManager.send(VideoEventEnum.VIDEO_COMPLETE, videoModel, playerCtr, isPreVideo: _isPreview());
|
||||
}
|
||||
|
||||
/// 推荐区切内容(释放控制器 + 重拉详情起播,不开新页)。
|
||||
/// **必须按被点内容的 videoType 定接口**,用页面入参会串接口 → 「视频资源加载失败」
|
||||
Future<void> switchVideo(VideoModel model) async {
|
||||
_trackComplete();
|
||||
videoModel = model;
|
||||
isShowBuy.value = false;
|
||||
isCartoon = model.videoType == 1;
|
||||
@@ -601,7 +588,6 @@ class VideoLogic extends GetxController with GetSingleTickerProviderStateMixin {
|
||||
/// 切视频或切 CDN 路线:[model] 非空=切新视频,为空=同视频换 URL;控制器为空走首次进入路径
|
||||
Future<void> startPlay({VideoModel? model, bool resetPos = false}) async {
|
||||
if (model != null) {
|
||||
_trackComplete();
|
||||
videoModel = model;
|
||||
}
|
||||
if (playerCtr == null) {
|
||||
@@ -619,7 +605,6 @@ class VideoLogic extends GetxController with GetSingleTickerProviderStateMixin {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
_trackComplete();
|
||||
currentEpisode = episode;
|
||||
isShowBuy.value = false;
|
||||
releasePlayer(rebuild: false);
|
||||
@@ -653,13 +638,12 @@ class VideoLogic extends GetxController with GetSingleTickerProviderStateMixin {
|
||||
playerCtr = null;
|
||||
}
|
||||
|
||||
/// 页面销毁清理:上报 VIDEO_COMPLETE → 取消事件订阅 → 非预览视频上报观看记录 → 释放播放器
|
||||
/// 页面销毁清理:取消事件订阅 → 非预览视频上报观看记录 → 释放播放器
|
||||
@override
|
||||
void onClose() {
|
||||
isDispose = true; // 第一时间置位,让所有异步回调(initialize/postFrame/Future.delayed)能尽早 return
|
||||
TimedPopupManager().cancel(TimedPopupType.freeWatchPay);
|
||||
TimedPopupManager().cancel(TimedPopupType.videoPayAhead);
|
||||
_trackComplete();
|
||||
|
||||
playerCtr?.pause();
|
||||
playerCtr?.removeListener(_onProgress);
|
||||
|
||||
@@ -7,7 +7,6 @@ import 'package:jydj/assets_tool/images.dart';
|
||||
import '../../../hj_model/splash/ads_model.dart';
|
||||
import '../../../tools_base/banner/ads_banner.dart';
|
||||
import '../../../tools_base/global_store/store.dart';
|
||||
import '../../../track_event_manager/track_manager.dart';
|
||||
|
||||
/// 播放前贴片广告(Banner + 倒计时关闭)。
|
||||
/// 倒计时完或 VIP 关闭走 [onFinish],未到时间的非 VIP 走 [onToVip] 引导开通
|
||||
@@ -91,7 +90,6 @@ class _VideoAdWidgetState extends State<VideoAdWidget> {
|
||||
height: 88,
|
||||
autoPlayMs: 2000,
|
||||
indicatorAlign: IndicatorAlign.bottomCenter,
|
||||
exposureModel: AdExposureModel(pageType: TrackEventPageType.videoPlay, adType: AdType.smallBanner),
|
||||
),
|
||||
_closeBtn(),
|
||||
if (widget.showBackArrow) _backBtn(),
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import 'package:analytics_sdk/enum/video_event_enum.dart';
|
||||
import 'package:extended_nested_scroll_view/extended_nested_scroll_view.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
@@ -17,7 +16,6 @@ import 'package:video_player/video_player.dart';
|
||||
|
||||
import '../../../alert/video/share_media_dialog.dart';
|
||||
import '../../../routers/jump_router.dart';
|
||||
import '../../../track_event_manager/track_manager.dart';
|
||||
import '../../cartoon/cartoon_recommend_page.dart';
|
||||
|
||||
/// 视频播放页数据详情
|
||||
@@ -83,7 +81,6 @@ class _VideoDetailViewState extends State<VideoDetailView> with SingleTickerProv
|
||||
6,
|
||||
padding: EdgeInsets.only(left: 12, bottom: 18),
|
||||
autoStyle: true,
|
||||
exposureModel: AdExposureModel(pageType: TrackEventPageType.videoPlay),
|
||||
),
|
||||
),
|
||||
SliverToBoxAdapter(child: _buildTitleMenu()),
|
||||
@@ -209,9 +206,8 @@ class _VideoDetailViewState extends State<VideoDetailView> with SingleTickerProv
|
||||
);
|
||||
}
|
||||
|
||||
/// 分享:带播放器上报埋点(进度/时长),再弹分享面板
|
||||
/// 分享:弹分享面板
|
||||
void _onShare() {
|
||||
TrackVideoManager.send(VideoEventEnum.VIDEO_SHARE, videoModel, widget.playCtr);
|
||||
Get.dialog(ShareMediaDialog(videoModel: videoModel));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import 'dart:async';
|
||||
import 'dart:ui' show ImageFilter;
|
||||
|
||||
import 'package:analytics_sdk/enum/video_event_enum.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
@@ -16,7 +15,6 @@ import '../../../hj_utils/buy_util.dart';
|
||||
import '../../../hj_utils/date_time_util.dart';
|
||||
import '../../../hj_utils/free_play_manager.dart';
|
||||
import '../../../tools_base/global_store/store.dart';
|
||||
import '../../../track_event_manager/track_manager.dart';
|
||||
import '../../pre_sale/pre_sale_provider.dart';
|
||||
import '../../short_video/view/video_progress_widget.dart';
|
||||
import 'long_video_status.dart';
|
||||
@@ -196,8 +194,6 @@ class _VideoMenuViewState extends State<VideoMenuView> {
|
||||
|
||||
void _setPlay(bool play) {
|
||||
_playing.value = play;
|
||||
TrackVideoManager.send(play ? VideoEventEnum.VIDEO_PLAY : VideoEventEnum.VIDEO_PAUSE, widget.videoModel, playCtr,
|
||||
isPreVideo: isPreview);
|
||||
play ? playCtr.play() : playCtr.pause();
|
||||
}
|
||||
|
||||
@@ -219,8 +215,6 @@ class _VideoMenuViewState extends State<VideoMenuView> {
|
||||
const step = Duration(seconds: 10);
|
||||
final pos = playCtr.value.position;
|
||||
playCtr.seekTo(_snapSeek(forward ? pos + step : pos - step));
|
||||
TrackVideoManager.send(forward ? VideoEventEnum.VIDEO_FORWARD : VideoEventEnum.VIDEO_REWIND, widget.videoModel, playCtr,
|
||||
isPreVideo: isPreview);
|
||||
}
|
||||
|
||||
void _onPlayerTick() {
|
||||
@@ -282,7 +276,6 @@ class _VideoMenuViewState extends State<VideoMenuView> {
|
||||
},
|
||||
onLongPressStart: (_) {
|
||||
showToast("长按不动,2X倍速播放", gravity: ToastGravity.top);
|
||||
TrackVideoManager.send(VideoEventEnum.VIDEO_FORWARD, widget.videoModel, playCtr, isPreVideo: isPreview);
|
||||
_isLongPress = true;
|
||||
_showSpeed = false;
|
||||
_showSeekText = false;
|
||||
|
||||
Reference in New Issue
Block a user