您的位置:首页 > 移动开发 > IOS开发

ios无法播放安卓视频的问题

2015-10-29 10:35 417 查看
近期公司在做一个关于即时通讯方面的应用,其中涉及到一个视频播放的问题,这里先说一下关于视频的一些问题。视频的播放我们一共用了四种方式,因为一致无法播放安卓发送过来的视频。

1、 我们使用cocoa类播放,但是遇到了问题,因为用的自定义的tabBar。在使用UITableView 之后返回根视图,会把自定义的tabBar盖住。会出现如下



UIDocumentInteractionController * documentInteractionController = [PlayerViewController
interactionControllerWithURL:[NSURL
fileURLWithPath:[IMFileHelper
exChangeAbsPath:path]]];
[documentInteractionController
setDelegate:self];
BOOL ret = [documentInteractionController
presentPreviewAnimated:YES];

if (!ret) {
UIAlertView * alert = [[UIAlertView
alloc] initWithTitle:@"不支持浏览此文件"
message:nil
delegate:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil,
nil];
[alert
show];
}

2、第二种方法,使用系统框架播放。安卓的视频无法播放,视频的URL和下载的本地沙河路径都可以播放,整整弄了两天没解决阿 ,当时都想放弃了。
NSURL*theurl=[NSURL
fileURLWithPath:[IMFileHelper
exChangeAbsPath:path]];
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];

3、使用了百度的视频sdk播放,效果可以,需要自定义界面,实现代理。

4、最简单的直接用WebView播放,它功能简直太强大,预览各种类型的文件及视频。但是它无法播放安卓的视频。

UIWebView *conentWebView = [[UIWebView
alloc] initWithFrame:CGRectMake(0,
0, kSCREEN_WIDTH,
CGRectGetHeight(self.view.frame)-
20-kNavHeight)];
[self.view
addSubview:conentWebView];
conentWebView.scalesPageToFit =
YES;
conentWebView.delegate =
self;

if ([[NSFileManager
defaultManager] fileExistsAtPath:filepath]) {
NSLog(@"路径存在..");
NSURLRequest *request = [NSURLRequest
requestWithURL:[NSURL
fileURLWithPath:filepath]];
[web loadRequest:request];

}

总结:推荐如果不涉及到分享功能,推荐使用UIWebView 。几句代码搞定, 最后我们也是用的它,不能播放因为是安卓那边音频转码问题,一定记得要让Android的同事将其录制视频时的音频编码设置为AAC,安卓的编码设置是一个枚举类型,选择AAC就可以了。这是我一点心得,谢谢勿喷!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: