0

大丈夫みんな他のみんなと同じ質問。すべての向きをサポートするように .plist を編集した場合は動作するようになりましたが、MPMoviePlayerController (およびおそらく MWPhotoBrwoser 画像) で回転をサポートするだけで済みます。

私のコード:Viewcontroller.h

#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
#import <MediaPlayer/MediaPlayer.h>

@interface MusikViewController : UIViewController{
    AVAudioPlayer *audioPlayer;

}

//tilføjer vores film afspiller
@property (nonatomic, strong) MPMoviePlayerController *moviePlayer;


//Laver de to knapper
//Musik knap
- (IBAction)Play:(UIButton *)sender;
//Film knap
- (IBAction)playButton:(id)sender;

//info knap
- (IBAction)info:(id)sender;


@end

Viewcontroller.m

#import "MusikViewController.h"



@implementation MusikViewController
@synthesize moviePlayer;


- (IBAction)Play:(UIButton *)sender
{
    NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/roteWeste.mp4", [[NSBundle mainBundle] resourcePath]]];

    NSError *error;
    audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
    audioPlayer.numberOfLoops = -1;

    if (audioPlayer == nil){
        NSLog(@"Der skete en fejl, prøv at genstarte app'en, hvis problemet bliver ved, prøv da at send en mail til Mrostgaard@gmail.com");
    }
    else
        [audioPlayer play];
}

- (IBAction)playButton:(id)sender {

    NSString *videoFile = [[NSBundle mainBundle] pathForResource:@"RoteVeste2" ofType:@"m4v"];

    moviePlayer = [[MPMoviePlayerController alloc]initWithContentURL:[NSURL fileURLWithPath:videoFile]];

    [self.view addSubview:moviePlayer.view];

    moviePlayer.fullscreen = YES;

    moviePlayer.allowsAirPlay = YES;
    moviePlayer.controlStyle = MPMovieControlModeVolumeOnly;


    [moviePlayer play];


}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    {
        if ((UIDeviceOrientationIsLandscape(interfaceOrientation))||(UIDeviceOrientationIsLandscape(interfaceOrientation))) {
            return YES;
        }
        else return NO;
    }
    else
    {
        if ((UIDeviceOrientationIsLandscape(interfaceOrientation))||(UIDeviceOrientationIsLandscape(interfaceOrientation))) {
            return YES;
        }
        else return NO; }
}
- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [audioPlayer stop]; // Or pause
}


- (IBAction)info:(id)sender {
}
@end

私はそれを機能させることができないようです。コード:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    {
        if ((UIDeviceOrientationIsLandscape(interfaceOrientation))||(UIDeviceOrientationIsLandscape(interfaceOrientation))) {
            return YES;
        }
        else return NO;
    }
    else
    {
        if ((UIDeviceOrientationIsLandscape(interfaceOrientation))||(UIDeviceOrientationIsLandscape(interfaceOrientation))) {
            return YES;
        }
        else return NO; }
}

私の最近の試みですが、MPMovieViewControllerを回転させるだけでほとんどすべてを試しました。

私もこれを試してみましたが、動作させることができませんでした http://fostah.com/ios/2012/09/27/ios6-orientation-handling.html

本当に助けを願っています!:)

4

2 に答える 2

1

あなたの質問を読んだとき:「.plistを編集してすべての向きをサポートすればうまくいきましたが、MPMoviePlayerController(およびおそらくMWPhotoBrwoser画像)で回転をサポートするだけで済みます」、最初の発言はあなたがすべきだということです.plist ですべての向きを許可します。plist で許可されている方向は、アプリケーションのさまざまなビュー コントローラーがサポートする必要があるすべての方向の結合でなければなりません。

特定のView Controllerで何をしても、plistで許可されていない方向への回転を許可することはできません.

特定のView Controllerが許可する向きを指定するのは、すべての個々のView Controller次第です。手順は次のとおりです。

  1. 少なくとも 1 つのビュー コントローラーでサポートされている plist 内のすべての方向を許可します。
  2. すべての個別のビュー コントローラーについては、shouldAutorotateToInterfaceOrientation(iOS5) および shouldAutorotate/ supportedInterfaceOrientations(iOS6)を使用します。
于 2012-12-10T10:16:09.233 に答える
0

AppDelegate.h に次のメソッドを追加します

-(NSUInteger) application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{

    if(!ISIPAD)){

        if ([[self.window.rootViewController presentedViewController] isKindOfClass:[MPMoviePlayerViewController class]] && ![[self.window.rootViewController presentedViewController] isBeingDismissed])
        {
            return UIInterfaceOrientationMaskAllButUpsideDown;
        }
        else
        {
            return UIInterfaceOrientationMaskPortrait;
        }
    }
    return UIInterfaceOrientationMaskAllButUpsideDown ;

}
于 2015-07-22T14:12:34.057 に答える