AVPlayer无法播放MP4视频

7

enter image description here我正在使用AVPlayer播放视频。我无法播放.mp4格式的视频,只看到黑屏。以下是我的代码:

`NSString *filePath = [self.videoArray objectAtIndex:index];
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:filePath ofType: @"mp4];
url = [[NSURL alloc] initFileURLWithPath: soundFilePath];
playerViewController = [[AVPlayerViewController alloc] init];
playerViewController.videoGravity = AVLayerVideoGravityResize;
playerViewController.view.frame = self.view.bounds;
playerViewController.showsPlaybackControls = NO;
video=[AVPlayer playerWithURL:url];
playerViewController.player = _video;
playerViewController.view.userInteractionEnabled = false;
[video play];
[self.view addSubview:playerViewController.view];`

使用 NSLog 或调试点检查 filepath 或 soundFilePath 是否具有适当的值?还提供更多详细信息,例如您收到的错误日志。 - Ravi B
'NSInvalidArgumentException',原因:'*** -[NSURL initFileURLWithPath]: 空字符串参数' - Bharu
1
你的URL链接有误。self.video_Array 这个数组中包含哪些URL链接,是HTTP链接还是本地链接? - Ravi B
请给我一个您的URL,如果可能的话,因为根据您的代码,似乎您正在尝试播放存储在“bundle”中的视频。 - Ravi B
文件路径是正确的,但是声音filePath显示为nil值。请检查我上面的代码。 - Bharu
你需要提供“filePath”以便我能够帮助你。 - Ravi B
1个回答

3

请尝试使用以下代码,我认为它会对您有用,因为您的URL似乎不是来自捆绑包而是来自Web。

// your filepath which is may be "http" type
NSString *filePath = [self.video_Array objectAtIndex:index];
// http to NSURL using string filepath
NSURL *url= [[NSURL alloc] initWithString:filePath];
AVPlayerViewController *playerViewController = [[AVPlayerViewController alloc] init];
playerViewController.videoGravity = AVLayerVideoGravityResize;
playerViewController.view.frame = self.view.bounds;
playerViewController.showsPlaybackControls = NO;
video=[AVPlayer playerWithURL:url];
playerViewController.player = _video;
playerViewController.view.userInteractionEnabled = false;
[video play];
[self.view addSubview:playerViewController.view];

谢谢。我已经添加了两个同名的视频文件。那就是问题所在。 - Bharu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接