101 lines
2.1 KiB
Objective-C
101 lines
2.1 KiB
Objective-C
//
|
|
// MedalMediaDisplayManager.h
|
|
// YuMi
|
|
//
|
|
// Created by AI on 2025/1/20.
|
|
//
|
|
|
|
#import <Foundation/Foundation.h>
|
|
#import <UIKit/UIKit.h>
|
|
|
|
@class VAPView, NetImageView, XPRoomGiftAnimationParser;
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
/**
|
|
* 媒体显示代理协议
|
|
* 需要使用媒体显示功能的类实现此协议
|
|
*/
|
|
@protocol MedalMediaDisplayDelegate <NSObject>
|
|
|
|
@required
|
|
/// 从数据模型中获取MP4 URL
|
|
- (NSString * _Nullable)getMP4UrlFromModel:(id _Nullable)model;
|
|
|
|
/// 从数据模型中获取图片 URL
|
|
- (NSString * _Nullable)getPicUrlFromModel:(id _Nullable)model;
|
|
|
|
/// 获取图片显示视图
|
|
- (NetImageView *)getImageView;
|
|
|
|
/// 获取MP4播放视图
|
|
- (VAPView *)getMP4View;
|
|
|
|
@optional
|
|
/// 媒体显示状态更新回调
|
|
- (void)onMediaDisplayUpdated:(BOOL)isMP4 success:(BOOL)success;
|
|
|
|
/// 获取默认占位图
|
|
- (UIImage * _Nullable)getDefaultPlaceholderImage;
|
|
|
|
@end
|
|
|
|
/**
|
|
* 勋章媒体显示管理器
|
|
* 统一处理MP4和PNG的显示逻辑
|
|
*/
|
|
@interface MedalMediaDisplayManager : NSObject
|
|
|
|
/// 代理对象
|
|
@property (nonatomic, weak) id<MedalMediaDisplayDelegate> delegate;
|
|
|
|
/// 当前显示的数据模型
|
|
@property (nonatomic, strong, nullable) id currentModel;
|
|
|
|
/// 可见性状态
|
|
@property (nonatomic, assign) BOOL isVisible;
|
|
|
|
/// 当前媒体路径
|
|
@property (nonatomic, copy, readonly, nullable) NSString *currentImagePath;
|
|
@property (nonatomic, copy, readonly, nullable) NSString *currentMP4Path;
|
|
|
|
/**
|
|
* 初始化方法
|
|
* @param delegate 实现MedalMediaDisplayDelegate协议的对象
|
|
*/
|
|
- (instancetype)initWithDelegate:(id<MedalMediaDisplayDelegate>)delegate;
|
|
|
|
/**
|
|
* 更新显示内容
|
|
* @param model 数据模型
|
|
*/
|
|
- (void)updateDisplayWithModel:(id _Nullable)model;
|
|
|
|
/**
|
|
* 可见性管理
|
|
*/
|
|
- (void)willDisplay;
|
|
- (void)didEndDisplaying;
|
|
|
|
/**
|
|
* 播放控制
|
|
*/
|
|
- (void)stopMP4Playback;
|
|
- (void)pauseMP4Playback;
|
|
- (void)resumeMP4Playback;
|
|
|
|
/**
|
|
* 资源清理
|
|
*/
|
|
- (void)cleanupResources;
|
|
|
|
/**
|
|
* 应用生命周期通知处理
|
|
*/
|
|
- (void)handleAppDidEnterBackground;
|
|
- (void)handleAppWillEnterForeground;
|
|
- (void)handleMemoryWarning;
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END |