0

アプリにYouTubeビデオを統合しようとしています。しかし、ビデオが終了したら、呼び出し元のviewControllerに再開したいです。私はそれをほぼ実装することに成功しましたが、私の方法では、ユーザーは完了ボタンを押してから別のボタンを押して、元のViewControllerに戻る必要があります。

これは私が使用するコードです。助けてください。完全なコードまたはコード例を参照してください。

YouTubeView.h :

#import <UIKit/UIKit.h>

@interface YouTubeView : UIWebView
{
}

- (YouTubeView *)initWithStringAsURL:(NSString *)urlString frame:(CGRect)frame mimeSubType:(NSString *)mimeType;
@end

YouTubeView.m :

#import "YouTubeView.h"

@interface YouTubeView ()

@end

@implementation YouTubeView


- (YouTubeView *)initWithStringAsURL:(NSString *)urlString frame:(CGRect)frame mimeSubType:(NSString *)mimeType
{
NSString *strMimeType;

if([mimeType length]>0)
{
    strMimeType = mimeType;
}

else
{
    strMimeType =@"x-shockwave-flash"; //@"x-shockwave-mp4";
}

if (self = [super init])
{
    // Create webview with requested frame size
    self = [[UIWebView alloc] initWithFrame:frame];

    // HTML to embed YouTube video

    NSString *videoHTML = [NSString stringWithFormat:@"\
                 <html>\
                 <head>\
                 <style type=\"text/css\">\
                 iframe {position:absolute; top:50%%; margin-top:-130px;}\
                 body {background-color:#000; margin:0;}\
                 </style>\
                 </head>\
                 <body>\
                 <iframe width=\"100%%\" height=\"240px\" src=\"%@\" frameborder=\"0\" allowfullscreen></iframe>\
                 </body>\
                 </html>", urlString];

    [self loadHTMLString:videoHTML baseURL:nil];

}

return self;

}


- (void)dealloc
{
[super dealloc];
}

@end

そして、メイン ViewController 上の * を指すボタン: -(IBAction)runTestVideo:(id)sender {

NSString *strNormalVdoURL = [NSString stringWithFormat:@"http://www.youtube.com/embed/TgLqH9n57B0"];

YouTubeView *videoVw = [[YouTubeView alloc] initWithStringAsURL:[NSString stringWithFormat:@"%@",strNormalVdoURL] frame:CGRectMake(0,0,315,420) mimeSubType:@"x-shockwave-flash"];

                        [self.view addSubview:videoVw];
                        [videoVw release];
                        videoVw = nil;

}

助けてください。

4

1 に答える 1

0

私の方法があなたの方法で機能するかどうかはよくわかりません。ビデオの再生中にビューを非表示にしました。ユーザーが完了ボタンを押すと、ムービー コントローラーが終了し、ビューが表示されます。

- (void)viewDidLoad { 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector (MPMoviePlayerDidExitFullScreen;) name:MPMoviePlayerDidExitFullscreenNotification object:nil];
}

- (void)MPMoviePlayerDidExitFullScreen:(NSNotification *)notification {
[[NSNotificationCenter defaultCenter] removeObserver:self name: MPMoviePlayerDidExitFullscreenNotification object:nil];

[movieController stop];
[movieController.view removeFromSuperview];

view.hidden = NO;
}
于 2012-07-19T02:45:50.913 に答える