我想在MPMoviePlayerController視圖(OS 2.x及更高版本)中的標準倒帶/播放/轉發控件的左側和右側添加自定義按鈕。我已經想出瞭如何將它們添加到播放器窗口,但它們始終可見。有沒有辦法檢測標準控件何時出現和消失?如何檢測iPhone MPMoviePlayer控件何時出現/消失?
回答
好的,明白了,做成這樣:
BOOL controlsVisible = NO;
for(id views in [[_moviePlayer view] subviews]){
for(id subViews in [views subviews]){
for (id controlView in [subViews subviews]){
controlsVisible = ([controlView alpha] <= 0.0) ? (NO) : (YES);
}
}
}
NSLog(@"player controls are visible: %d", controlsVisible);
凡_movePlayer是您的播放器的實例。 在最深的循環中,MPFullScreenVideoOverlay視圖實例將在隱藏控件時具有alpha == 0.0,如果顯示控件則爲alpha 1.0。 您可以根據需要添加觀察者並開火。我知道這並不高雅,但它對我來說很有用,因爲Apple沒有記錄任何有關此任務的信息。
乾杯......
查看movieControlMode屬性。您可以設置MPMovieControlMode
MPMovieControlMode用於顯示電影播放控件的選項。
typedef enum {
MPMovieControlModeDefault,
MPMovieControlModeVolumeOnly,
MPMovieControlModeHidden
}
MPMovieControlMode;
您還可以檢查出MPMoviePlayerScalingModeDidChangeNotification
我知道如何啓用控件,我在尋找的是控件出現和消失時的通知(例如,當用戶點擊屏幕時)。 – 2010-03-18 01:04:29
預iOS3.2
檢測 「disapierance」 很簡單:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayerController];
檢測appierance是有點困難(也許有更好的方法) :
...
[moviePlayerController play];
mainTimer = [NSTimer scheduledTimerWithTimeInterval:1/100 target:self selector:@selector(tick) userInfo:nil repeats:YES];
- (void)tick {
if([[[UIApplication sharedApplication] windows] count] < 2) return;
moviePlayerWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
if(moviePlayerWindow){
[mainTimer invalidate], mainTimer=nil;
// here you have moviePlayerWindow
}
}
我指的是在電影頂部的HUD中出現的播放器控件。這些將在移動過程中出現並消失(例如,當用戶點擊電影時)。 – 2010-09-27 17:38:08
cybercow的答案是正確的只需要添加少量的修改,使答案更準確。
BOOL controlsVisible = NO;
for(id views in [[self.moviePlayerViewController view] subviews])
{
for(id subViews in [views subviews])
{
for (id controlView in [subViews subviews])
{
if ([controlView isKindOfClass:[UIView class]] && ((UIView*)controlView).tag == 1004)
{
controlsVisible = ([controlView alpha] <= 0.0) ? (NO) : (YES)
}
}
}
}
我改變了最內在的循環。實際上,1004是MPMoviePlayer控件的標籤,因此它可以更準確地工作。
- 1. iOS MPMoviePlayer - 模仿控件出現/消失的行爲
- 2. 如何檢測Android鍵盤出現/消失的時間? (5.02)
- 3. 如何檢測失效的控件?
- 4. iPhone,如何檢測何時將控件返回給瀏覽器?
- 5. MPMoviePlayer當用戶尋求前進時,你如何檢測?
- 6. 嘗試使用MPMoviePlayer時出現黑屏
- 7. 我如何隱藏MPMoviePlayer控件?
- 8. 如何隱藏MPMoviePlayer視頻控件?
- 9. 如何檢測圖像何時失焦?
- 10. 如何檢測彈出窗口消除
- 11. Android檢測測試失敗,出現''java.lang.NoClassDefFoundError'空測試套件'。
- 12. 檢測國際鍵盤的出現和消失
- 13. 如何檢測一個片段何時出現在屏幕上?
- 14. 如何檢測滾動條何時出現? C#
- 15. iPhone:動畫視圖另一個視圖時出現/消失
- 16. 當UIImagePicker出現時,iPhone鍵盤會消失
- 17. 如何檢測docker-py client.build()失敗時
- 18. 如何檢測QDockWidget何時移出QMainWindow?
- 19. iPhone,sqlite3,如何檢測空日期,分配給NSString時出錯?
- 20. 如何讓div在懸停時消失,另一個出現?
- 21. 如何檢測何時在文件輸入上單擊取消?
- 22. Iphone MPMoviePlayer通知
- 23. iPhone - 如何檢測iPhone版本?
- 24. iPhone MPMoviePlayer隱藏電影控制
- 25. 我如何使Toplevel小部件出現並消失
- 26. iPad - MPMoviePlayer在縮小後消失
- 27. 爲組件Angular2事件出現/消失
- 28. 如何檢測WPF控件何時被重繪?
- 29. 如何可靠地檢測鼠標何時離開控件?
- 30. 如何檢測控件何時移至MonoTouch中的視圖?
喜歡你的做法..!和+1這個 – Kamarshad 2012-11-01 11:43:22
它不起作用,當啓用3G – hariszaman 2016-01-15 10:05:04