1

全画面表示ボタンをクリックすると、UIWebView でローカル ビデオを再生する際に少し問題が発生します。

これは iPad アプリで、ビデオのあるビューに移動して再生ボタンをクリックすると、正常に再生され、スキップして一時停止/再生できます。ただし、フルスクリーンをクリックすると、ビデオがフルスクリーンに引き伸ばされ、1秒間再生すると、フルスクリーンが消え、ビデオがその場所に表示される代わりに、白いボックスが表示されます. iOS 6 を実行する iPad 第 3 世代と iOS 6 を実行する iPad シミュレーターでこれをテストしましたが、どちらも同じことを行います。ただし、iOS 5 を実行する iPad 第 1 世代と iOS 5 を実行するシミュレーターでは、どちらもフル スクリーンで正常に再生されます。

iOS 6 iPad/シミュレーターで、ビデオの [再生] をクリックすると、デバッグ領域に次のように表示されます。

2012-12-06 16:11:07.361 PICO[19131:11f03] [MPAVController] Autoplay: Enabling autoplay
2012-12-06 16:11:07.362 PICO[19131:11f03] [MPAVController] Autoplay: Skipping autoplay, disabled (for current item: 0, on player: 1)
2012-12-06 16:11:07.362 PICO[19131:11f03] setting movie path: file:///Users/Nathan/Library/Application%20Support/iPhone%20Simulator/6.0/Applications/DB4C3A91-F148-417B-8319-4690F89E1382/PICO.app/30.20.mp4
2012-12-06 16:11:07.362 PICO[19131:11f03] [MPAVController] Autoplay: Enabling autoplay
2012-12-06 16:11:07.368 PICO[19131:11f03] [MPCloudAssetDownloadController] Prioritization requested for media item ID: 0
2012-12-06 16:11:07.437 PICO[19131:11f03] [MPAVController] Autoplay: Skipping autoplay, disabled (for current item: 0, on player: 1)
2012-12-06 16:11:07.447 PICO[19131:11f03] [MPAVController] Autoplay: Enabling autoplay
2012-12-06 16:11:07.448 PICO[19131:11f03] [MPAVController] Autoplay: _streamLikelyToKeepUp: 0 -> 1

そして、フルスクリーンボタンをクリックすると:

2012-12-06 16:12:39.918 PICO[19131:11f03] [MPAVController] Autoplay: Enabling autoplay
2012-12-06 16:12:40.168 PICO[19131:11f03] [MPAVController] Autoplay: Enabling autoplay
2012-12-06 16:12:40.178 PICO[19131:11f03] [MPAVController] Autoplay: Skipping autoplay, disabled (for current item: 0, on player: 1)

とにかく私のコードは次のとおりです。

.h

@property (strong, nonatomic) IBOutlet UIWebView *videoView;

.m

[videoView loadHTMLString:@"<body style=\"margin:0px;\"><video src=\"30.20.mp4\" controls width=\"640\" height=\"360\"></video></body>" baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]bundlePath]]];
videoView.scrollView.scrollEnabled = NO;

ご覧のとおり、loadHTMLString を使用して、ローカル ビデオをソースとするビデオ タグをロードしているだけです。私はオンラインでよく見ましたが、これについては何も見つかりません。うまくいけば、それは単純なものです!

4

1 に答える 1

0

さて、これは私がそれを修正した方法です。

MediaPlayerフレームワークを追加します。ターゲット>ビルドフェーズ>リンクバイナリ..>+ボタン<MediaPlayerの入力を開始

次に、以下のコードを使用します。

YourClass.h
#import <MediaPlayer/MediaPlayer.h>
@interface YourClass : UIViewController
@property (strong, nonatomic) MPMoviePlayerController *moviePlayer; //creating the property is a must else it will show a black box instead of your video and will not play

YourClass.m
@synthesize moviePlayer; 
NSString *moviePath = [[NSBundle mainBundle] pathForResource:@"myVideoFile" ofType:@"mp4"];
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:moviePath]];
moviePlayer.view.frame = CGRectMake(73, 203, 640, 360); //position you want the player and it's size
[self.view addSubview:moviePlayer.view];
[moviePlayer prepareToPlay];
[moviePlayer setShouldAutoplay:NO]; //autoplays by default

iOS5.1および6で動作します

于 2013-03-08T17:56:14.710 に答える