AnyChat技术支持论坛

标题: 文件默认保存地址 [打印本页]

作者: 525776828yyc    时间: 2015-1-6 15:34
标题: 文件默认保存地址
问下录制视频后视频默认保存在哪?收到文件后保存在哪?为什么用ifile找不到这些文件?

作者: chenxs    时间: 2015-1-6 15:46
您好,如果是 服务器录制,保存的文件是在您部署的录制服务器里,
如果是本地录制,保存的文件在iOS APP 的Document里面
作者: admin    时间: 2015-1-6 15:47
录制完成之后,有回调事件,在回调事件中有录像文件的位置参数。
作者: chenxs    时间: 2015-1-6 16:15
您好,可以利用AnyChat提供的录制完成回调方法中的文件地址参数“lpFileName”。需要实现的回调方法如下:
  1. //录像完成事件
  2. - (void) OnAnyChatRecordCallBack:(int) dwUserid : (NSString*) lpFileName : (int) dwElapse : (int) dwFlags : (int) dwParam : (NSString*) lpUserStr
复制代码

作者: 525776828yyc    时间: 2015-1-7 14:01
收发文件图片也在这个位置么默认?
作者: chenxs    时间: 2015-1-7 14:44
本帖最后由 chenxs 于 2015-1-7 14:46 编辑
525776828yyc 发表于 2015-1-7 14:01
收发文件图片也在这个位置么默认?

您好,本地保存得文件图片和视频录制后的文件默认位置是一样的在iOS APP 的Document里。
作者: 525776828yyc    时间: 2015-1-7 16:16
chenxs 发表于 2015-1-7 14:44
您好,本地保存得文件图片和视频录制后的文件默认位置是一样的在iOS APP 的Document里。

还有一个问题是录像完成后想调用回调函数是怎么判断的,没有自动调用
+(int) StreamRecordCtrlEx:(int)dwUserId : (BOOL)bStartRecord : (int)dwFlags : (int) dwParam : (NSString*) szUserStr;这里面需要设置哪个参数?
作者: chenxs    时间: 2015-1-7 16:52
525776828yyc 发表于 2015-1-7 16:16
还有一个问题是录像完成后想调用回调函数是怎么判断的,没有自动调用
+(int) StreamRecordCtrlExint)d ...

您好,录像完成的回调函数,是需要 设置 AnyChatRecordSnapShotDelegate代理和实现协议方法 才会触发回调方法。
作者: chenxs    时间: 2015-1-7 17:04
本帖最后由 chenxs 于 2015-1-7 17:19 编辑
525776828yyc 发表于 2015-1-7 16:16
还有一个问题是录像完成后想调用回调函数是怎么判断的,没有自动调用
+(int) StreamRecordCtrlExint)d ...
  1. //音视频录制
  2. +(int) StreamRecordCtrlEx:(int)dwUserId : (BOOL)bStartRecord : (int)dwFlags : (int) dwParam : (NSString*) szUserStr;
复制代码
音视频录制参数设置参考:
dwUserId: 设置需要录制视频的用户编号,录制本地用户(自己)可设置“-1” 。
bStartRecord: 设置YES是启动录像,NO是停止录像。
dwFlags: 录制功能标志(参考备注)
dwParam: 附带参数(无需带参可设置为“0”)
szUserStr: 附带参数,字符串类型(无需带参可设置为空“”)


备注:
录像功能标志指示 SDK 在录制时,进行特殊的处理,0 表示默认(音视频同 步录制),目前支持如下标志组合:
ANYCHAT_RECORD_FLAGS_VIDEO    ///< 录制视频
ANYCHAT_RECORD_FLAGS_AUDIO    ///< 录制音频
ANYCHAT_RECORD_FLAGS_SERVER   ///< 服务器端录制
ANYCHAT_RECORD_FLAGS_MIXAUDIO ///< 录制音频时,将其它人的声音混音后录制
ANYCHAT_RECORD_FLAGS_MIXVIDEO ///< 录制视频时,将其它人的视频迭加后录制
ANYCHAT_RECORD_FLAGS_ABREAST  ///< 录制视频时,将其它人的视频并列录制
ANYCHAT_RECORD_FLAGS_STEREO   ///< 录制音频时,将其它人的声音混合为立体声后录制
ANYCHAT_RECORD_FLAGS_SNAPSHOT ///< 拍照
ANYCHAT_RECORD_FLAGS_LOCALCB  ///< 触发本地回调

也可以参考AnyChat SDK 包里的AnyChatFeature Demo工程的RecordLocalVC类的录像功能部分示例代码。
               



作者: 525776828yyc    时间: 2015-1-8 09:51
我想修改视频录制存放位置,放在app的documents里的temp下

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString  *myDirectory = [documentsDirectory stringByAppendingPathComponent :@"temp"];
路径设置为myDirectory为什么不行?

作者: admin    时间: 2015-1-8 10:18
您好,iOS程序都是在沙盒中运行的,没有权限访问沙盒之外的路径。

Android平台就没有这样的限制。
作者: 525776828yyc    时间: 2015-1-8 10:39
admin 发表于 2015-1-8 10:18
您好,iOS程序都是在沙盒中运行的,没有权限访问沙盒之外的路径。

Android平台就没有这样的限制。

我的代码就是访问这个app的documents。那我想修改录像储存路径没办法?
作者: chenxs    时间: 2015-1-8 11:01
本帖最后由 chenxs 于 2015-1-8 14:37 编辑
525776828yyc 发表于 2015-1-8 10:39
我的代码就是访问这个app的documents。那我想修改录像储存路径没办法?

您好,修改录像地址可以用AnyChat SDK 的内核参数设置 方法修改
  1. + (int) SetSDKOptionString:(int) optname: (NSString*) value;
复制代码
参考代码:
  1. //获取APP沙盒路径
  2. NSString *documentsPaths = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
  3. //设置自定义录像储存路径
  4. NSString  *myRecordPaths = [documentsPaths stringByAppendingPathComponent:@"Record_mp4"];
  5. [AnyChatPlatform SetSDKOptionString:BRAC_SO_RECORD_TMPDIR : myRecordPaths];
复制代码

作者: 525776828yyc    时间: 2015-1-8 11:49
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString  *myDirectory = [documentsDirectory stringByAppendingPathComponent :@"temp"];
[AnyChatPlatform SetSDKOptionInt:BRAC_SO_RECORD_TMPDIR :myDirectory];
就是这么设置的,我的路径不对么,结果没改变


作者: admin    时间: 2015-1-8 11:50
把myDirectory的值输出看看是什么路径?
作者: chenxs    时间: 2015-1-8 11:54
本帖最后由 chenxs 于 2015-1-8 14:32 编辑
525776828yyc 发表于 2015-1-8 11:49
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  ...

您好,你使用的API上的参数是int 类型,传入的类型不对,应该是用以下带有NSString类型的方法
  1. // SDK内核参数设置
  2. + (int) SetSDKOptionString:(int) optname : (NSString*) value;
复制代码





欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) Powered by Discuz! X3