Iphone 尝试播放(使用MPMoviePlayerViewController)我下载并存储在文件中的视频/歌曲时出现问题
这是我的问题 我有一个mpmovieplayervewcontroller,可以播放网络上的一些视频。那部分有效 但为了以后在没有互联网连接的情况下播放,我将它们存储在手机上,并使用该代码Iphone 尝试播放(使用MPMoviePlayerViewController)我下载并存储在文件中的视频/歌曲时出现问题,iphone,ios,video,mpmovieplayercontroller,Iphone,Ios,Video,Mpmovieplayercontroller,这是我的问题 我有一个mpmovieplayervewcontroller,可以播放网络上的一些视频。那部分有效 但为了以后在没有互联网连接的情况下播放,我将它们存储在手机上,并使用该代码 NSData * data = [NSData dataWithContentsOfURL:[self dataURL]]; NSArray * documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSData * data = [NSData dataWithContentsOfURL:[self dataURL]];
NSArray * documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * baseDocumentPath = ([documentPaths count] > 0) ? [documentPaths objectAtIndex:0] : nil;
[data writeToFile:[baseDocumentPath stringByAppendingPathComponent:_itemId]
atomically:YES];
这部分没问题,如果我从手机中取出文件,我可以在iMac上播放这些文件
但在那之后当我
NSArray * documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * baseDocumentPath = ([documentPaths count] > 0) ? [documentPaths objectAtIndex:0] : nil;
videoController = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL fileURLWithPath:[baseDocumentPath stringByAppendingPathComponent:file.itemId]]];
模态viewController中只有一个灰色窗口。我没有收到玩家的通知
有什么想法吗
谢谢。有人找到了问题的原因 文件名没有扩展名(如.mp4),因此MPMovieController不会尝试读取它(对我来说这听起来很疯狂--)。如果我手动将.mp4添加到我的视频文件中。应用程序可以读取它。。。我将把每个文件的扩展名附加到它的名字后面
无论如何谢谢:)我今天遇到了同样的问题 iOS似乎不会加载任何具有错误文件扩展名的媒体文件。我知道这是非常愚蠢的行为,因为我用随机名称(UUID)存储媒体文件 一个快速的解决方法是使用以下代码创建指向原始文件的符号链接,并为其提供正确的扩展名。现在iOS将很高兴地加载该文件
// Create a symlink for iOS as it won't load any files with the wrong extension
NSString *fixedFileName = [fileName stringByAppendingString:@".mp4"];
[[NSFileManager defaultManager] createSymbolicLinkAtPath:fixedFileName
withDestinationPath:fileName error:NULL];
希望有帮助。如果符号链接已经存在,我们只需忽略发生错误的事实。NSLog()文件.itemId如果它显示了您的期望值,请尝试使用NSFileManager打开该文件,查看它是否是有效的文件路径&该文件已成功保存在那里。您可能还应该检查
数据writeToFile:atomically:
调用的输出,看看它是否保存正常。这是一个有效的文件路径,例如,我可以记录数据长度。我确信这是一个好文件。这是一个处理它的好方法。谢谢:)无论如何,这个应用程序现在已经交付,所以我只保存了带有扩展名的文件。就个人而言,我认为苹果公司依靠文件扩展名来确定其内容类型是非常愚蠢的。;)