iphone - que - cómo reproducir un archivo de video local?
formato video iphone 6 (3)
Simplemente reemplace su URL con el siguiente código
NSString *filepath = [[NSBundle mainBundle] pathForResource:@"videoFileName" ofType:@"m4v"];
NSURL *fileURL = [NSURL fileURLWithPath:filepath];
He creado un archivo de video .mov con mi software de captura de pantalla (escritorio) y quiero que ese video se reproduzca en mi aplicación en UIWebview. ¿Hay alguna manera de reproducir ese video o de cualquier otra manera para poder crear una URL para mi video local?
Ahora mismo uso un enlace de video predeterminado para reproducir video en UIWebview.
Aquí está el código:
- (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;
}
pero no tengo url de video que quiero jugar ..
pls ayuda !!
Las soluciones anteriores que explican cómo reproducir video que está presente en Xcode utilizando NSBundle. Mi respuesta será útil para aquellos que buscan dinámicamente seleccionar video desde dispositivo y jugar.
class ViewController: UIViewController,UIImagePickerControllerDelegate, UINavigationControllerDelegate
import AVFoundation
import AVKit
import MobileCoreServices
(No olvide agregar MobileCoreServicesFramework en Build Fhases)
Establece las propiedades para video. por ejemplo
@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)
}
Luego implemente la función 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)
}
y usando el nombre de archivo anterior puedes reproducir el video :)
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()
}
}
EDITAR: MPMoviePlayerController
está en MPMoviePlayerController
ahora. Así que he usado AVPlayerViewController
. y escrito el siguiente código:
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];
No olvide importar los siguientes marcos:
#import <AVFoundation/AVFoundation.h>
#import <AVKit/AVKit.h>
Puede usar MPMoviePlayerController
para reproducir archivos locales.
1. Agrega Mediaplayer
framework y haz #import <MediaPlayer/MediaPlayer.h>
en tu viewController.
2. Arrastre y suelte su archivo de video que creó en el escritorio en el xcode.
3. Obtenga la ruta del video local.
NSString*thePath=[[NSBundle mainBundle] pathForResource:@"yourVideo" ofType:@"MOV"];
NSURL*theurl=[NSURL fileURLWithPath:thePath];
4. Inicializa MoviePlayer con tu ruta.
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. Para controlar lo que se debe hacer después de la reproducción:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playBackFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];
//playBackFinished will be your own method.
EDIT 2 : Para manejar la finalización de AVPlayerViewController
lugar de MPMoviePlayerController
, use lo siguiente ...
AVPlayerItem *playerItem = player.currentItem;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playBackFinished:) name:AVPlayerItemDidPlayToEndTimeNotification object:playerItem];
En este ejemplo, AVPlayerViewController
el AVPlayerViewController
después de la finalización:
-(void)playBackFinished:(NSNotification *) notification {
// Will be called when AVPlayer finishes playing playerItem
[playerViewController dismissViewControllerAnimated:false completion:nil];
}