2010-06-21 80 views
1

我想在視圖內播放視頻,所以我可以移動它,與其他視圖一起執行佈局,但似乎無法使用MPMoviePlayerController工作。我在how to play video in portrait mode上遇到過這個鏈接,但這是不可能的,因爲視頻源來自網絡,應該可以在不同平臺上播放,而不僅僅是在iPhone上播放。使用MPMoviePlayerController在視圖內播放視頻?

我已經成功地旋轉了視頻和縮放它,但它仍然包含在填充整個屏幕的UIWindow中。有沒有辦法創建一箇中間的UIWindow,但在當前屏幕中看不到,所以你可以在那裏播放視頻,並可能添加子視圖,並將所有內容都作爲UIView返回,我可以將它放在任何位置?類似於創建一個CGGraphics上下文在那裏繪製對象並輸出爲圖像。這也會阻止當前屏幕從縱向旋轉到橫向。

----- 2010/06/22 06:10 + 08:00 ---

響應Jasarien的答案(如下圖),實際上它是可以旋轉和縮放視頻。視頻預加載後,它會創建另一個UIWindow實例,然後成爲當時的關鍵窗口。通過在MPMoviePlayerContentPreloadDidFinishNotification中創建回調選擇器,可以應用當前密鑰窗口的變換修改。

-(void)myMovieFinishedPreloading:(NSNotification*)aNotification { 
    NSArray *windows = [[UIApplication sharedApplication] windows]; 

    UIWindow *moviePlayerWindow = nil; 
    if ([windows count] > 1) 
    { 
    moviePlayerWindow = [[UIApplication sharedApplication] keyWindow]; 
    } 

    CGAffineTransform transform = CGAffineTransformMakeScale(0.5, 0.5); 
    transform = CGAffineTransformRotate(transform, -90.0f*M_PI/180.0f); 
    [moviePlayerWindow setTransform:transform]; 

} 

現在的問題是,現在它的一個UIWindow和因爲一個UIWindow部分是UIView子類,是有可能子視圖這個UIView的?此外,我似乎無法禁用預加載視頻時的自動旋轉行爲。

回答

0

iPhone上的視頻始終以全屏播放。帶有iOS 3.2的iPad具有API,可以將視頻視爲普通視圖。

對於iPhone而言,無需編寫自己的視頻視圖,您將無法獲得所需的功能。

0

查看AVPlayer和AVPlayerLayer。

+0

也許這應該是一個評論?或者,也許你可以進入更多的細節 – 2012-09-26 16:31:15

相關問題