Comment jouer vidéo à l'aide de MPMoviePlayerController?
J'utilise le code suivant pour lire la vidéo à l'aide de la MPMoviePlayerController , mais la vidéo n'est pas joué. Quelqu'un peut me dire pourquoi ?
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"/one.mp4"];
NSString *mediaPath = [[[NSBundle mainBundle]resourcePath] stringByAppendingPathComponent:filePath];
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:mediaPath]];
[[moviePlayer view] setFrame:[[self view] bounds]];
[[self view] addSubview: [moviePlayer view]];
moviePlayer.scalingMode = MPMovieScalingModeAspectFit;
[moviePlayer play];
Avez-vous spécifié l'extension du fichier?
OriginalL'auteur Perseus | 2012-05-30
Vous devez vous connecter pour publier un commentaire.
C'est assez bizarre, mais il semble fonctionner ok si vous faites votre MPMoviePlayerController d'une propriété au lieu d'une variable locale. Semble quelque chose qui se passe derrière les coulisses. Je pense que c'est lié à l'ARC. Êtes-vous à l'aide de l'ARC?
C'est aussi une question que vous avez sur-annexé votre chemin:
Lorsque j'exécute votre code dans le simulateur, le chemin ressemble à ceci:
Il faut juste être présent:
Donc, il suffit de supprimer cette ligne:
Puis de changer de joueur de l'instanciation:
De sorte que vous devez ajouter le MPMoviePlayerController comme une propriété de votre contenant de vue-contrôleur.
Exactement comment avez-vous résoudre ce problème?
Salut @Ancientar. Vous pouvez voir dans le commentaire ci-dessus que j'ai mentionné que, j'ai oublié de définir le cadre pour MPMoviePlayerController, et a également ajouté une propriété prepareToPlay. Il a travaillé
Dans mon cas, l'ARC du problème. J'ai fait une propriété de mediaplayer et cela a fonctionné pour moi, merci pour la réponse
OriginalL'auteur Matt Long
Tout droit, il y a une grande différence entre l'application bundle et le répertoire documents. Je vous suggère de jeter un oeil à ce.
Tout d'abord, Où sont les vidéos enregistrées?
Si votre vidéo est dans le répertoire documents, ne pas ajouter le répertoire documents de chemin du bundle chemin.
Essayez la
filePath
variable:Toutefois, si le fichier est dans le app bundle (vous l'avez ajouté à votre projet dans XCode), vous devez utiliser ce qui est dans
jinx
réponse.Pour info , je ne vais pas ajouter les fichiers dans mon projet, je veux l'avoir dans le répertoire Documents seulement
Tout exemple très simple que la façon de jouer une vidéo à l'aide de la MPMoviePlayerController sera tout à fait suffisant. Je serai très reconnaissant si vous m'aider à résoudre ce problème
Ouais, le problème est probablement que la vidéo n'est même pas là. Avez-vous le télécharger à partir de quelque part? Comment fait-il pour le répertoire documents?
Je l'ai copié et collé. Il fonctionne très bien pour la Webview cas. [webview loadRequest:urlRequest]; Qui charge le fichier dans la webview et je peux voir son jeu
OriginalL'auteur Fran Sevillano
OriginalL'auteur NANNAV
Essayez de demander à votre bundle directement et de ne pas configurer le chemin d'accès au fichier manuellement
OriginalL'auteur pbx
Joueur est initialisé avec l'adresse URL de la vidéo qui nous voulons être joué (Il peut être soit un chemin de fichier local d'un dispositif ou d'une URL.) après que le joueur est ajouté en tant que sous affichage de la vue en cours.
Formats vidéo pris en charge par MPMoviePlayerController classe sont les suivantes
Je ne suis pas sûr de savoir comment beaucoup vous cet article devrait vous aider. Je suis nouveau à cela. J'ai travaillé sur l'étape par étape les instructions fournies dans cet article
OriginalL'auteur masterbinoy
l'espoir de l'Aider à
OriginalL'auteur Ayaz
Il m'a fallu quelques minutes pour déboguer le problème, mais la réponse est assez simple. Voici l'affaire:
Si vous voulez MPMoviePlayerViewController de jouer à partir d'une URL de site web utiliser ceci:
NSURL *url = [NSURL URLWithString:@"https://www.test.com/anyMovie.mp4"];
Et si vous voulez MPMoviePlayerViewController à jouer à partir de l'App Bundle utiliser ceci:
NSString *moviePath = [[NSBundle mainBundle] pathForResource:@"anyMovie" ofType:@"m4v"];
NSURL *url = [NSURL fileURLWithPath:moviePath];
Le Reste se passe de la même, sauf que vous devez vous définissez cette propriété "movieSourceType" comme suit:
OriginalL'auteur Waleed Mahmood