Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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)

AltStyle によって変換されたページ (->オリジナル) /