-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathNewTimeShiftSpriteViewController.m
More file actions
134 lines (113 loc) · 5.02 KB
/
NewTimeShiftSpriteViewController.m
File metadata and controls
134 lines (113 loc) · 5.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
//
// NewTimeShiftSpriteViewController.m
// MLVB-API-Example-OC
//
// Created by carol on 2024/04/22.
// Copyright © 2024 Tencent. All rights reserved.
//
#import "NewTimeShiftSpriteViewController.h"
#import "TXSpriteImageFetcher.h"
static NSString *const G_NEW_TIME_SHIFT_DOMAIN = @"5000.liveplay.myqcloud.com";
static NSString *const G_NEW_TIME_SHIFT_PATH = @"live";
static NSString *const G_NEW_TIME_SHIFT_STREAMID = @"5000_testsprite";
@interface NewTimeShiftSpriteViewController () <UITextFieldDelegate, TXSpriteImageFetcherDelegate>
@property(weak, nonatomic) IBOutlet UITextField *playDomain;
@property(weak, nonatomic) IBOutlet UITextField *playPath;
@property(weak, nonatomic) IBOutlet UITextField *streamId;
@property(weak, nonatomic) IBOutlet UIDatePicker *startTimePick;
@property(weak, nonatomic) IBOutlet UIDatePicker *endTimePick;
@property(weak, nonatomic) IBOutlet UITextField *playOffsetHh;
@property(weak, nonatomic) IBOutlet UITextField *playOffsetMm;
@property(weak, nonatomic) IBOutlet UITextField *playOffsetSs;
@property(weak, nonatomic) IBOutlet UIButton *btnShowSprite;
@property(weak, nonatomic) IBOutlet UIImageView *spriteImage;
@property(nonatomic, strong) TXSpriteImageFetcher *spriteImageFetcher;
@end
@implementation NewTimeShiftSpriteViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.title = localize(@"MLVB-API-Example.Home.NewTimeShiftSprite");
self.view.backgroundColor = UIColor.blackColor;
[self initView];
[self addKeyboardObserver];
}
- (void)initView {
self.playDomain.text = G_NEW_TIME_SHIFT_DOMAIN;
self.playPath.text = G_NEW_TIME_SHIFT_PATH;
self.streamId.text = G_NEW_TIME_SHIFT_STREAMID;
NSDate *currentDate = [NSDate date];
NSDate *oneHourLater = [currentDate dateByAddingTimeInterval:3600]; // 3600秒表示一小时
[self.startTimePick setDate:currentDate];
[self.endTimePick setDate:oneHourLater];
}
- (void)dealloc {
[self removeKeyboardObserver];
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
[self.view endEditing:true];
}
- (IBAction)onBtnShowSpriteClick:(id)sender {
[self.spriteImage setImage:nil];
if (self.spriteImageFetcher == nil) {
self.spriteImageFetcher = [[TXSpriteImageFetcher alloc] init];
[self.spriteImageFetcher setDelegate:self];
[self.spriteImageFetcher setCacheSize:10];
[self.spriteImageFetcher init:self.playDomain.text
path:self.playPath.text
streamId:self.streamId.text
startTs:(long)[self.startTimePick.date timeIntervalSince1970]
endTs:(long)[self.endTimePick.date timeIntervalSince1970]];
}
long time = 3600 * [self.playOffsetHh.text intValue] + 60 * [self.playOffsetMm.text intValue] +
[self.playOffsetSs.text intValue];
[self.spriteImageFetcher getThumbnail:time];
}
#pragma mark - TXSpriteImageFetcherDelegate
- (void)onFetchDone:(SpriteThumbnailFetchErrCode)errCode image:(UIImage *)image {
if (errCode != SPRITE_THUMBNAIL_FETCH_SUCC) {
NSString *msg = [NSString stringWithFormat:@"onFetchDone errCode is %ld", (long)errCode];
UIAlertController *alert =
[UIAlertController alertControllerWithTitle:@"提示"
message:msg
preferredStyle:UIAlertControllerStyleAlert];
[alert addAction:[UIAlertAction actionWithTitle:@"确定"
style:UIAlertActionStyleDefault
handler:nil]];
// 弹出提示框
[self presentViewController:alert animated:YES completion:nil];
} else {
[self.spriteImage setImage:image];
}
}
#pragma mark - UITextFieldDelegate
- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string {
return YES;
}
#pragma mark - Notification
- (void)addKeyboardObserver {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification
object:nil];
}
- (void)removeKeyboardObserver {
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillHideNotification
object:nil];
}
- (BOOL)keyboardWillShow:(NSNotification *)noti {
return YES;
}
- (BOOL)keyboardWillHide:(NSNotification *)noti {
return YES;
}
@end