Skip to content

Commit 2550f63

Browse files
committed
【iOS】support touch view hide hud
1 parent 193c9e9 commit 2550f63

File tree

23 files changed

+344
-105
lines changed

23 files changed

+344
-105
lines changed

Example/Common/1.The Basis Of AV/Custom Decoder/MRCustomDecoderViewController.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,9 @@ - (IBAction)go:(NSButton *)sender
139139
} else {
140140
self.inputField.placeholderString = @"请输入视频地址";
141141
}
142+
#if TARGET_OS_IPHONE
143+
[self.inputField resignFirstResponder];
144+
#endif
142145
}
143146

144147
@end

Example/Common/1.The Basis Of AV/Decode Packet/MRDecodePacketViewController.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,9 @@ - (IBAction)go:(NSButton *)sender
139139
} else {
140140
self.inputField.placeholderString = @"请输入视频地址";
141141
}
142+
#if TARGET_OS_IPHONE
143+
[self.inputField resignFirstResponder];
144+
#endif
142145
}
143146

144147
@end

Example/Common/1.The Basis Of AV/Movie Prober/MRMovieProberViewController.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ - (IBAction)go:(NSButton *)sender
4242
} else {
4343
self.inputField.placeholderString = @"请输入视频地址";
4444
}
45+
#if TARGET_OS_IPHONE
46+
[self.inputField resignFirstResponder];
47+
#endif
4548
}
4649

4750
- (void)parseURL:(NSString *)url

Example/Common/1.The Basis Of AV/Read Packet/MRReadPacketViewController.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,9 @@ - (IBAction)go:(NSButton *)sender
106106
} else {
107107
self.inputField.placeholderString = @"请输入视频地址";
108108
}
109+
#if TARGET_OS_IPHONE
110+
[self.inputField resignFirstResponder];
111+
#endif
109112
}
110113

111114
@end

Example/Common/2.Video Rendering/Core-Graphics-Animation-Media/MRGAMViewController.m

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
@interface MRGAMViewController ()
1919
{
2020
MRPixelFormatMask _pixelFormat;
21+
MRRenderingMode _renderingMode;
2122
}
2223

2324
@property (strong) FFTPlayer0x10 *player;
@@ -109,7 +110,6 @@ - (void)parseURL:(NSString *)url
109110
FFTPlayer0x10 *player = [[FFTPlayer0x10 alloc] init];
110111
player.contentPath = url;
111112
player.supportedPixelFormats = _pixelFormat;
112-
113113
__weakSelf__
114114
player.onVideoOpened = ^(FFTPlayer0x10 *player, NSDictionary * _Nonnull info) {
115115
__strongSelf__
@@ -219,18 +219,23 @@ - (void)viewDidLoad
219219
hudView.layer.zPosition = 100;
220220
CGRect rect = self.playbackView.bounds;
221221
#if TARGET_OS_IPHONE
222-
rect.size.width = 300;
222+
CGFloat viewHeigth = CGRectGetHeight(rect);
223+
CGFloat viewWidth = CGRectGetWidth(rect);
224+
rect.size.height = 100;
225+
rect.size.width = 240;
226+
rect.origin.x = viewWidth - rect.size.width;
227+
rect.origin.y = viewHeigth - rect.size.height;
228+
[hudView setFrame:rect];
229+
hudView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin;
223230
#else
224231
CGFloat screenWidth = [[NSScreen mainScreen]frame].size.width;
225-
rect.size.width = MIN(screenWidth / 5.0, 150);
226-
#endif
227-
rect.origin.x = CGRectGetWidth(self.view.bounds) - rect.size.width;
232+
rect.size.height = MIN(screenWidth / 3.0, 210);
233+
hudView.autoresizingMask = NSViewWidthSizable;
228234
[hudView setFrame:rect];
229-
230-
hudView.autoresizingMask = NSViewMinXMargin | NSViewHeightSizable;
235+
#endif
231236

232237
self.inputField.stringValue = KTestVideoURL1;
233-
238+
_renderingMode = MRRenderingModeScaleAspectFit;
234239
[self prepareCoreAnimationView];
235240
}
236241

@@ -243,6 +248,9 @@ - (IBAction)go:(NSButton *)sender
243248
} else {
244249
self.inputField.placeholderString = @"请输入视频地址";
245250
}
251+
#if TARGET_OS_IPHONE
252+
[self.inputField resignFirstResponder];
253+
#endif
246254
}
247255

248256
- (BOOL)prepareRendererWidthClass:(Class)clazz
@@ -260,6 +268,7 @@ - (BOOL)prepareRendererWidthClass:(Class)clazz
260268
#endif
261269
videoRenderer.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable;
262270
self.videoRenderer = videoRenderer;
271+
[self.videoRenderer setRenderingMode:_renderingMode];
263272
return YES;
264273
}
265274

@@ -311,12 +320,17 @@ - (void)doSelectedVideoRenderer:(int)tag
311320

312321
- (void)doSelectedVideMode:(int)tag
313322
{
323+
MRRenderingMode renderingMode = MRRenderingModeScaleToFill;
314324
if (tag == 1) {
315-
[self.videoRenderer setRenderingMode:MRRenderingModeScaleToFill];
325+
renderingMode = MRRenderingModeScaleToFill;
316326
} else if (tag == 2) {
317-
[self.videoRenderer setRenderingMode:MRRenderingModeScaleAspectFill];
327+
renderingMode = MRRenderingModeScaleAspectFill;
318328
} else if (tag == 3) {
319-
[self.videoRenderer setRenderingMode:MRRenderingModeScaleAspectFit];
329+
renderingMode = MRRenderingModeScaleAspectFit;
330+
}
331+
if (_renderingMode != renderingMode) {
332+
_renderingMode = renderingMode;
333+
[self.videoRenderer setRenderingMode:renderingMode];
320334
}
321335
}
322336

@@ -348,6 +362,13 @@ - (IBAction)onSelectPixelFormat:(NSPopUpButton *)sender
348362
}
349363
#else
350364

365+
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
366+
{
367+
UIView *ctrlPanel = self.formatSegCtrl.superview;
368+
ctrlPanel.hidden = !ctrlPanel.isHidden;
369+
self.hud.contentView.hidden = !ctrlPanel.isHidden;
370+
}
371+
351372
- (IBAction)onSelectedVideoRenderer:(MRSegmentedControl *)sender
352373
{
353374
[self doSelectedVideoRenderer:(int)[sender tagForCurrentSelected] + 1];

Example/Common/2.Video Rendering/Metal/MRMetalViewController.m

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ @interface MRMetalViewController ()
1919
{
2020
CVPixelBufferPoolRef _pixelBufferPoolRef;
2121
MRPixelFormatMask _pixelFormat;
22+
MRRenderingMode _renderingMode;
2223
}
2324

2425
@property (strong) FFTPlayer0x10 *player;
@@ -136,6 +137,7 @@ - (void)prepareRendererView
136137
#endif
137138
videoRenderer.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable;
138139
self.videoRenderer = videoRenderer;
140+
[self.videoRenderer setRenderingMode:_renderingMode];
139141
}
140142

141143
- (void)parseURL:(NSString *)url
@@ -154,7 +156,6 @@ - (void)parseURL:(NSString *)url
154156
FFTPlayer0x10 *player = [[FFTPlayer0x10 alloc] init];
155157
player.contentPath = url;
156158
player.supportedPixelFormats = _pixelFormat;
157-
158159
__weakSelf__
159160
player.onVideoOpened = ^(FFTPlayer0x10 *player, NSDictionary * _Nonnull info) {
160161
__strongSelf__
@@ -214,15 +215,20 @@ - (void)viewDidLoad
214215
hudView.layer.zPosition = 100;
215216
CGRect rect = self.playbackView.bounds;
216217
#if TARGET_OS_IPHONE
217-
rect.size.width = 300;
218+
CGFloat viewHeigth = CGRectGetHeight(rect);
219+
CGFloat viewWidth = CGRectGetWidth(rect);
220+
rect.size.height = 100;
221+
rect.size.width = 240;
222+
rect.origin.x = viewWidth - rect.size.width;
223+
rect.origin.y = viewHeigth - rect.size.height;
224+
[hudView setFrame:rect];
225+
hudView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin;
218226
#else
219227
CGFloat screenWidth = [[NSScreen mainScreen]frame].size.width;
220-
rect.size.width = MIN(screenWidth / 5.0, 150);
221-
#endif
222-
rect.origin.x = CGRectGetWidth(self.view.bounds) - rect.size.width;
228+
rect.size.height = MIN(screenWidth / 3.0, 210);
229+
hudView.autoresizingMask = NSViewWidthSizable;
223230
[hudView setFrame:rect];
224-
225-
hudView.autoresizingMask = NSViewMinXMargin | NSViewHeightSizable;
231+
#endif
226232

227233
self.inputField.stringValue = KTestVideoURL1;
228234

@@ -231,6 +237,7 @@ - (void)viewDidLoad
231237
#else
232238
_pixelFormat = MR_PIX_FMT_MASK_BGRA;
233239
#endif
240+
_renderingMode = MRRenderingModeScaleAspectFit;
234241
}
235242

236243
#if TARGET_OS_IPHONE
@@ -246,6 +253,13 @@ - (void)setupPixelFormats
246253
self.formatSegCtrl.selectedSegmentIndex = 0;
247254
_pixelFormat = [[tags firstObject] intValue];
248255
}
256+
257+
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
258+
{
259+
UIView *ctrlPanel = self.formatSegCtrl.superview;
260+
ctrlPanel.hidden = !ctrlPanel.isHidden;
261+
self.hud.contentView.hidden = !ctrlPanel.isHidden;
262+
}
249263
#endif
250264

251265
#pragma - mark actions
@@ -257,6 +271,9 @@ - (IBAction)go:(NSButton *)sender
257271
} else {
258272
self.inputField.placeholderString = @"请输入视频地址";
259273
}
274+
#if TARGET_OS_IPHONE
275+
[self.inputField resignFirstResponder];
276+
#endif
260277
}
261278

262279
- (IBAction)onSaveSnapshot:(NSButton *)sender
@@ -283,12 +300,17 @@ - (IBAction)onSaveSnapshot:(NSButton *)sender
283300

284301
- (void)doSelectedVideMode:(int)tag
285302
{
303+
MRRenderingMode renderingMode = MRRenderingModeScaleToFill;
286304
if (tag == 1) {
287-
[self.videoRenderer setRenderingMode:MRRenderingModeScaleToFill];
305+
renderingMode = MRRenderingModeScaleToFill;
288306
} else if (tag == 2) {
289-
[self.videoRenderer setRenderingMode:MRRenderingModeScaleAspectFill];
307+
renderingMode = MRRenderingModeScaleAspectFill;
290308
} else if (tag == 3) {
291-
[self.videoRenderer setRenderingMode:MRRenderingModeScaleAspectFit];
309+
renderingMode = MRRenderingModeScaleAspectFit;
310+
}
311+
if (_renderingMode != renderingMode) {
312+
_renderingMode = renderingMode;
313+
[self.videoRenderer setRenderingMode:renderingMode];
292314
}
293315
}
294316

Example/Common/2.Video Rendering/OpenGL ES2/MRGLES2ViewController.m

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
@interface MRGLES2ViewController ()
2020
{
2121
MRPixelFormatMask _pixelFormat;
22+
MRRenderingMode _renderingMode;
2223
}
2324

2425
@property (strong) FFTPlayer0x10 *player;
@@ -110,7 +111,7 @@ - (void)parseURL:(NSString *)url
110111
FFTPlayer0x10 *player = [[FFTPlayer0x10 alloc] init];
111112
player.contentPath = url;
112113
player.supportedPixelFormats = _pixelFormat;
113-
114+
[self.videoRenderer setRenderingMode:_renderingMode];
114115
__weakSelf__
115116
player.onVideoOpened = ^(FFTPlayer0x10 *player, NSDictionary * _Nonnull info) {
116117
__strongSelf__
@@ -170,21 +171,35 @@ - (void)viewDidLoad
170171
hudView.layer.zPosition = 100;
171172
CGRect rect = self.playbackView.bounds;
172173
#if TARGET_OS_IPHONE
173-
rect.size.width = 300;
174+
CGFloat viewHeigth = CGRectGetHeight(rect);
175+
CGFloat viewWidth = CGRectGetWidth(rect);
176+
rect.size.height = 100;
177+
rect.size.width = 240;
178+
rect.origin.x = viewWidth - rect.size.width;
179+
rect.origin.y = viewHeigth - rect.size.height;
180+
[hudView setFrame:rect];
181+
hudView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin;
174182
#else
175183
CGFloat screenWidth = [[NSScreen mainScreen]frame].size.width;
176-
rect.size.width = MIN(screenWidth / 5.0, 150);
177-
#endif
178-
rect.origin.x = CGRectGetWidth(self.view.bounds) - rect.size.width;
184+
rect.size.height = MIN(screenWidth / 3.0, 210);
185+
hudView.autoresizingMask = NSViewWidthSizable;
179186
[hudView setFrame:rect];
180-
181-
hudView.autoresizingMask = NSViewMinXMargin | NSViewHeightSizable;
187+
#endif
182188

183189
self.inputField.stringValue = KTestVideoURL1;
184-
190+
_renderingMode = MRRenderingModeScaleAspectFit;
185191
[self setupPixelFormats];
186192
}
187193

194+
#if TARGET_OS_IPHONE
195+
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
196+
{
197+
UIView *ctrlPanel = self.formatSegCtrl.superview;
198+
ctrlPanel.hidden = !ctrlPanel.isHidden;
199+
self.hud.contentView.hidden = !ctrlPanel.isHidden;
200+
}
201+
#endif
202+
188203
- (void)setupPixelFormats
189204
{
190205
NSArray *fmts = @[@"BGRA",@"BGR0",@"RGBA",@"RGB0",@"NV12",@"NV21",@"YUV420P"];
@@ -208,6 +223,9 @@ - (IBAction)go:(NSButton *)sender
208223
} else {
209224
self.inputField.placeholderString = @"请输入视频地址";
210225
}
226+
#if TARGET_OS_IPHONE
227+
[self.inputField resignFirstResponder];
228+
#endif
211229
}
212230

213231
- (BOOL)prepareRendererWidthClass:(Class)clazz
@@ -225,6 +243,7 @@ - (BOOL)prepareRendererWidthClass:(Class)clazz
225243
#endif
226244
videoRenderer.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable;
227245
self.videoRenderer = videoRenderer;
246+
[self.videoRenderer setRenderingMode:_renderingMode];
228247
return YES;
229248
}
230249

@@ -253,12 +272,17 @@ - (void)updateRenderingClazz
253272

254273
- (void)doSelectedVideMode:(int)tag
255274
{
275+
MRRenderingMode renderingMode = MRRenderingModeScaleToFill;
256276
if (tag == 1) {
257-
[self.videoRenderer setRenderingMode:MRRenderingModeScaleToFill];
277+
renderingMode = MRRenderingModeScaleToFill;
258278
} else if (tag == 2) {
259-
[self.videoRenderer setRenderingMode:MRRenderingModeScaleAspectFill];
279+
renderingMode = MRRenderingModeScaleAspectFill;
260280
} else if (tag == 3) {
261-
[self.videoRenderer setRenderingMode:MRRenderingModeScaleAspectFit];
281+
renderingMode = MRRenderingModeScaleAspectFit;
282+
}
283+
if (_renderingMode != renderingMode) {
284+
_renderingMode = renderingMode;
285+
[self.videoRenderer setRenderingMode:renderingMode];
262286
}
263287
}
264288

0 commit comments

Comments
 (0)