简体   繁体   English

MPMoviePlayerViewController没有播放视频。

[英]MPMoviePlayerViewController is not playing a video.

I am using my local router to play the video. 我正在使用本地路由器播放视频。 I have configured my router and attached pendrive with my router. 我已经配置了路由器,并在路由器上连接了pendrive。 the pen drive have some video files. 笔式驱动器有一些视频文件。 I am getting a URL (ie http://192.168.0.1/user/root/Sample.mp4 ) from router . 我从路由器获取URL(即http://192.168.0.1/user/root/Sample.mp4 )。 When i open this url on web browser, Video is playing perfectly fine but when try to play the same url using MPMoviePlayerViewController or AVPlayerViewController its not working. 当我在网络浏览器上打开该URL时,视频播放正常,但是当尝试使用MPMoviePlayerViewController或AVPlayerViewController播放相同的URL时,它将无法正常工作。

One interesting thing i observed that if i open the same url on iphone browser its not playing. 我观察到一件有趣的事情,如果我在iPhone浏览器上打开相同的URL,它将无法播放。

Please help me or give me a idea why its not playing on mobile app. 请帮助我或让我知道为什么它不能在移动应用程序上播放。

moviePlayerController = [[MPMoviePlayerViewController alloc]initWithContentURL:url];
 [player prepareToPlay];
player.movieSourceType = MPMovieSourceTypeStreaming;
[self presentMoviePlayerViewControllerAnimated:moviePlayerControll‌​er]; 
[moviePlayerController.moviePlayer play];

add player.movieSourceType = MPMovieSourceTypeStreaming; 添加player.movi​​eSourceType = MPMovieSourceTypeStreaming; in your code 在你的代码中

Edited 编辑

@property (strong, nonatomic ) MPMoviePlayerController*player;

   NSURL *movieURL = [NSURL URLWithString:@"http://clips.vorwaerts-gmbh.de/VfE_html5.mp4"];

self.player  = [[MPMoviePlayerController alloc] initWithContentURL: movieURL];
[self.player prepareToPlay];
[self.player.view setFrame:CGRectMake(0, 0, 320, 320)];
[self presentMoviePlayerViewControllerAnimated:self.player];


self.player.fullscreen = YES;
self.player.controlStyle = MPMovieControlStyleDefault;
self.player.movieSourceType = MPMovieSourceTypeStreaming;
// player's frame must match parent's [self.view addSubview: self.movieController.view]; [self.movieController play];
[self.player play];
[self.view addSubview:self.player.view];

I had problem for playing video.I tried lot of ways but nothing helped.Then finally I went with below code.It works fine now. 我在播放视频时遇到问题,我尝试了很多方法,但没有任何帮助,然后最终我使用了下面的代码,现在可以正常工作了。 I use iOS 10 .So I use AVPlayerViewController as MPMoviePlayerViewController is deprecated . 我使用iOS 10。 因此不推荐使用AVPlayerViewController,因为不推荐使用MPMoviePlayerViewController

ViewController.h ViewController.h

#import <UIKit/UIKit.h>
#import <AVKit/AVKit.h>
@interface ViewController : UIViewController
@property (strong, nonatomic) AVPlayerViewController *playerViewController;
- (IBAction)actionPlayVideo:(id)sender
@end

ViewController.m ViewController.m

#import "ViewController.h"

@interface ViewController (){
    NSURL *vedioURL;
}

@end

@implementation ViewController
@synthesize playerViewController;

- (void)viewDidLoad {
[super viewDidLoad];
}
- (IBAction)actionPlayVideo:(id)sender 
{
    vedioURL = @"192.168.0.1/user/root/Sample.mp4"; 
    AVPlayerItem* playerItem = [AVPlayerItem playerItemWithURL:vedioURL];
    AVPlayer* playVideo = [[AVPlayer alloc] initWithPlayerItem:playerItem];
    playerViewController = [[AVPlayerViewController alloc] init];
    playerViewController.player = playVideo;
    playerViewController.player.volume = 0;
    playerViewController.view.frame = self.view.bounds;
    [self.view addSubview:playerViewController.view];
    [playVideo play];
}

Please check with your iPhone,iPad or iPod 请检查您的iPhone,iPad或iPod

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM