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就可以了。这是我一点心得,谢谢勿喷!
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就可以了。这是我一点心得,谢谢勿喷!
相关文章推荐
- iOS cocoaPods笔记 安装 卸载 2015.10.29
- iOS开发 正确选择图片加载方式
- iOS7之定制View Controller切换效果
- iOS 系统地图 获取当前城市
- ios USURL用法注意事项
- iOS Iphone的所有机型
- IOS-系统自带社交分享
- iOS :GCD的简单实用
- iOS 之"performSelector may cause a leak because its selector is unknown"警告原因及其解决办法
- 寻找ios培训机构
- iOS开发10种数据传值方法
- iOS手势类的简单使用
- iOS 项目上架后的加急审核 2015.10.29
- 一个iOS上的秒表小应用的实现方法分享
- ios 学习笔记(二)
- NSThread - 4
- iOS 正则表达式的使用
- iOS 应用版本检测更新
- iOS 开发博客文章收录
- iFunBox显示机器未越狱