- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想在电影结束时显示电影播放器控件,所以我将观察者添加到 NSNotificationCenter :
- (void)movieFinishedCallback:(NSNotification*)aNotification
{
// Obtain the reason why the movie playback finished
NSNumber *finishReason = [[aNotification userInfo] objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey];
if ([finishReason intValue] == 0)
{
[self showControls];
}
// Handle other reasons
}
- (void)showControls
{
for(id views in [[[self.playerVC moviePlayer] view] subviews]){
for(id subViews in [views subviews]){
for (id controlView in [subViews subviews]){
[controlView setAlpha:1.0];
[controlView setHidden:NO];
}
}
}
}
直到现在一切都运行良好并且出现了控件,但是当我点击屏幕以隐藏它们时,控件消失并很快再次出现(类似于闪光灯),然后我需要再次点击查看隐藏控件..
有人知道我为什么遇到这个问题吗?或者有另一个想法在视频结束时显示控件?
最佳答案
首先调试并打印MPMoviePlayerView的 subview ,记下 subview ,找到控件 View 的名称。
这是我在我的应用程序中进行的调试。
Printing description of subViews:
<MPVideoContainerView: 0x7f936950f6e0; frame = (0 0; 375 667); autoresize = W+H; layer = <CALayer: 0x7f936950fa30>>
Printing description of controlView:
<MPVideoPlaybackOverlayView: 0x7f9369659a70; frame = (0 0; 375 667); alpha = 0; hidden = YES; autoresize = W+H; tag = 1004; layer = <CALayer: 0x7f93696c4710>>
Printing description of subViews:
<MPVideoContainerView: 0x7f936950f6e0; frame = (0 0; 375 667); autoresize = W+H; layer = <CALayer: 0x7f936950fa30>>
Printing description of views:
<MPSwipableView: 0x7f9369510290; frame = (0 0; 375 667); autoresize = W+H; gestureRecognizers = <NSArray: 0x7f9369510d30>; layer = <CALayer: 0x7f9369510620>>
然后我检查了控件 View 的名称并将其从播放器中删除。将其设置为隐藏。
- (void)hideControls
{
for(id views in [[player view] subviews]){
for(id subViews in [views subviews]){
for (id controlView in [subViews subviews]){
if ( [controlView isKindOfClass:NSClassFromString(@"MPVideoPlaybackOverlayView")] ) {
[controlView setAlpha:0.0];
[controlView setHidden:YES];
}
}
}
}
}
关于iphone - 电影播放完毕后在电影播放器中显示控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13153131/
我搜索了很多东西,比如: How to show icon blinking on google map 但是根据这个我没有找到如何让通知图标闪烁 我想在这个上闪烁图标 int icon = R.d
我很想知道我是否可以删除或更改 android 在选项卡布局下方提供的类似 drop-shadow 的效果。 最佳答案 我一问这个问题,我就在另一个stackoverflow post中得到答案.无论
我必须通过 AlaramManager 调用我的 BroadcastReceiver。 为此,我所做的不起作用: AlarmActivity.java public class AlarmActivi
我正在尝试执行以下操作: CPU_COUNT=$(cat /proc/stat | grep -E "^cpu[[:digit:]]+ " | wc -l) let CPU_COUNT=CPU_COU
我是一名优秀的程序员,十分优秀!