私の画面(デスクトップ)キャプチャソフトウェアで.movビデオファイルを作成しました。そのビデオをUIWebviewのアプリケーションで再生します。ローカルビデオのURLを作成できるように、そのビデオを再生する方法や他の方法はありますか???
現在、UIWebviewでビデオを再生するためにデフォルトのビデオリンクを使用しています。
ここにコードがあります:
- (void)applicationDidBecomeActive:(UIApplication *)application
{
self.viewVideoDisplay.frame = CGRectMake(0, 0, 1024, 1024);
[self.window addSubview:self.viewVideoDisplay];
[self.window bringSubviewToFront:self.viewVideoDisplay];
NSString *urlAddress = @"https://response.questback.com/pricewaterhousecoopersas/zit1rutygm/";
//Create a URL object.
NSURL *url = [NSURL URLWithString:urlAddress];
//URL Requst Object
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
//Load the request in the UIWebView.
[self.webViewVideo loadRequest:requestObj];
IsLoadingSelf = YES;
}
再生したい動画のURLがありません。
plsは助けます!!
編集:MPMoviePlayerController
は非推奨になりました。だから私はAVPlayerViewController
を使いました。そして、次のコードを書きました:
NSURL *videoURL = [NSURL fileURLWithPath:filePath];
//filePath may be from the Bundle or from the Saved file Directory, it is just the path for the video
AVPlayer *player = [AVPlayer playerWithURL:videoURL];
AVPlayerViewController *playerViewController = [AVPlayerViewController new];
playerViewController.player = player;
//[playerViewController.player play];//Used to Play On start
[self presentViewController:playerViewController animated:YES completion:nil];
以下のフレームワークをインポートすることを忘れないでください:
#import <AVFoundation/AVFoundation.h>
#import <AVKit/AVKit.h>
MPMoviePlayerController
を使用してローカルファイルを再生できます。
1。Mediaplayer
フレームワークを追加して#import <MediaPlayer/MediaPlayer.h>
をviewControllerに追加します。
2。デスクトップで作成したビデオファイルをxcodeにドラッグアンドドロップします。
。ローカルビデオのパスを取得します。
NSString*thePath=[[NSBundle mainBundle] pathForResource:@"yourVideo" ofType:@"MOV"];
NSURL*theurl=[NSURL fileURLWithPath:thePath];
4。 moviePlayerをパスで初期化します。
self.moviePlayer=[[MPMoviePlayerController alloc] initWithContentURL:theurl];
[self.moviePlayer.view setFrame:CGRectMake(40, 197, 240, 160)];
[self.moviePlayer prepareToPlay];
[self.moviePlayer setShouldAutoplay:NO]; // And other options you can look through the documentation.
[self.view addSubview:self.moviePlayer.view];
5。再生後に実行する処理を制御するには:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playBackFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];
//playBackFinished will be your own method.
編集2:AVPlayerViewController
ではなくMPMoviePlayerController
の補完を処理するには、次を使用します...
AVPlayerItem *playerItem = player.currentItem;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playBackFinished:) name:AVPlayerItemDidPlayToEndTimeNotification object:playerItem];
この例では、完了後にAVPlayerViewController
を閉じます:
-(void)playBackFinished:(NSNotification *) notification {
// Will be called when AVPlayer finishes playing playerItem
[playerViewController dismissViewControllerAnimated:false completion:nil];
}
URLを以下のコードに置き換えるだけです
NSString *filepath = [[NSBundle mainBundle] pathForResource:@"videoFileName" ofType:@"m4v"];
NSURL *fileURL = [NSURL fileURLWithPath:filepath];
上記のソリューションは、NSBundleを使用してXcodeに存在するビデオを再生する方法を説明しています。私の答えは、デバイスからビデオを動的に選択して再生することを探している人に役立ちます。
class ViewController: UIViewController,UIImagePickerControllerDelegate, UINavigationControllerDelegate
import AVFoundation
import AVKit
import MobileCoreServices
(ビルドフェーズでMobileCoreServicesFrameworkを追加することを忘れないでください)
ビデオのプロパティを設定します。例えば.
@IBAction func buttonClick(sender: AnyObject)
{
imagePicker.delegate = self
imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
imagePicker.mediaTypes = [kUTTypeMovie as String]
imagePicker.allowsEditing = true
self.presentViewController(imagePicker, animated: true,
completion: nil)
}
次に、UIImagePickerControllerDelegate関数を実装します。
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject])
{
var filename = ""
let mediaType = info[UIImagePickerControllerMediaType] as! NSString
if mediaType.isEqualToString(kUTTypeMovie as String)
{
let url = info[UIImagePickerControllerMediaURL] as! NSURL
filename = url.pathComponents!.last!
}
self.dismissViewControllerAnimated(true, completion: nil)
self.playVideo(filename)
}
上記のファイル名を使用すると、ビデオを再生できます:)
func playVideo(fileName : String)
{
let filePath = NSURL(fileURLWithPath: NSTemporaryDirectory()).URLByAppendingPathComponent(fileName)
let player = AVPlayer(URL: filePath)
let playerViewController = AVPlayerViewController()
playerViewController.player = player
self.presentViewController(playerViewController, animated: true)
{
player.play()
}
}