AnyChat技术支持论坛

标题: anychat的音频录制 [打印本页]

作者: Zhiyu    时间: 2016-4-5 09:00
标题: anychat的音频录制
您好,我想问一下,anychat的c# demo能实现语音录制吗?就是录制成音频文件存到本地?是哪个函数实现的呢?


作者: 佰锐科技-邵光清    时间: 2016-4-5 09:38
您好,在C#demo中增加BRAC_StreamRecordCtrl或者BRAC_StreamRecordCtrlEx方法即可,参数的介绍请参考开发文档。
作者: Zhiyu    时间: 2016-4-5 09:52
佰锐科技-邵光清 发表于 2016-4-5 09:38
您好,在C#demo中增加BRAC_StreamRecordCtrl或者BRAC_StreamRecordCtrlEx方法即可,参数的介绍请参考开发文 ...

您好,我想问一下这个对音视频流进行录制的函数能单独提取出音频文件吗?

作者: 佰锐科技-江裕    时间: 2016-4-5 10:32
Zhiyu 发表于 2016-4-5 09:52
您好,我想问一下这个对音视频流进行录制的函数能单独提取出音频文件吗?

您好,只录制音频文件是可以的,AnyChat支持录像文件格式设置(MP4、WMV、FLV、MP3)
作者: 佰锐科技-邵光清    时间: 2016-4-5 10:33
Zhiyu 发表于 2016-4-5 09:52
您好,我想问一下这个对音视频流进行录制的函数能单独提取出音频文件吗?

可以的,支持提取本地的语音、对方的语音、双方的语音。
作者: Zhiyu    时间: 2016-4-5 10:34
佰锐科技-邵光清 发表于 2016-4-5 10:33
可以的,支持提取本地的语音、对方的语音、双方的语音。

您好我想问一下BRAC_StreamRecordCtrl和BRAC_StreamRecordCtrlEx方法有什么区别吗?
作者: admin    时间: 2016-4-5 10:40
加了Ex的功能更强大,可以替代不加Ex的接口!
作者: Zhiyu    时间: 2016-4-5 10:42
admin 发表于 2016-4-5 10:40
加了Ex的功能更强大,可以替代不加Ex的接口!

哦,就是说我直接用Ex就行了是吧
作者: 佰锐科技-江裕    时间: 2016-4-5 10:46
Zhiyu 发表于 2016-4-5 10:42
哦,就是说我直接用Ex就行了是吧

您好,BRAC_StreamRecordCtrl和BRAC_StreamRecordCtrlEx方法都可以实现。
作者: Zhiyu    时间: 2016-4-5 11:00
admin 发表于 2016-4-5 10:40
加了Ex的功能更强大,可以替代不加Ex的接口!

E:\QQ图片20160405103752.png
你好我想问下,图片里的这些参数应该如何设置呢?

QQ图片20160405103752.png (8.66 KB, 下载次数: 5498)

QQ图片20160405103752.png

作者: 佰锐科技-邵光清    时间: 2016-4-5 11:09
Zhiyu 发表于 2016-4-5 11:00
你好我想问下,图片里的这些参数应该如何设置呢?

您好,第一个参数是userid;第二个参数1表示开始,0表示结束;第三个参数是录制标识:BRAC_RECORD_FLAGS_VIDEO;
BRAC_RECORD_FLAGS_AUDIO;
BRAC_RECORD_FLAGS_SERVER;
BRAC_RECORD_FLAGS_MIXAUDIO;
BRAC_RECORD_FLAGS_MIXVIDEO;
BRAC_RECORD_FLAGS_ABREAST;
BRAC_RECORD_FLAGS_STEREO;
BRAC_RECORD_FLAGS_SNAPSHOT;
BRAC_RECORD_FLAGS_LOCALCB;
BRAC_RECORD_FLAGS_STREAM;
BRAC_RECORD_FLAGS_USERFILENAME;
第四个和第五个参数没有用到可以传0。
作者: Zhiyu    时间: 2016-4-5 11:10
佰锐科技-邵光清 发表于 2016-4-5 11:09
您好,第一个参数是userid;第二个参数1表示开始,0表示结束;第三个参数是录制标识:BRAC_RECORD_FLAGS_ ...

为什么最后一个参数是string类型的呢
作者: Zhiyu    时间: 2016-4-5 11:11
佰锐科技-邵光清 发表于 2016-4-5 11:09
您好,第一个参数是userid;第二个参数1表示开始,0表示结束;第三个参数是录制标识:BRAC_RECORD_FLAGS_ ...

我录制结束之后文件名怎么设置呢?文件保存的路径是什么呢?
作者: 佰锐科技-邵光清    时间: 2016-4-5 11:31
本帖最后由 佰锐科技-邵光清 于 2016-4-5 16:25 编辑
Zhiyu 发表于 2016-4-5 11:11
我录制结束之后文件名怎么设置呢?文件保存的路径是什么呢?

您好,请参考:AnyChat音视频录制整体解决方案
录像文件的名称默认是:时间+用户名+随机数;
可以这样修改文件名:1、在本地的录制回调函数里面调用文件操作函数对文件进行改名;
2、客户端调用录制方法(BRAC_StreamRecordCtrlEx)时,通过参数(lpUserStr)传入文件名,类似:{"filename":"abc.mp4"},为一个json字符串,关键字为:filename;
文件保存路径默认是temp文件夹,可以自行设置文件保存路径。

作者: 佰锐科技-邵光清    时间: 2016-4-5 13:55
Zhiyu 发表于 2016-4-5 11:10
为什么最后一个参数是string类型的呢

您好,如果您没有用到,置为空即可。
作者: Zhiyu    时间: 2016-4-5 16:00
佰锐科技-邵光清 发表于 2016-4-5 13:55
您好,如果您没有用到,置为空即可。

您好,我的代码是这么写的
  1. int ret = AnyChatCoreSDK.StreamRecordCtrlEx(-1,true,AnyChatCoreSDK.ANYCHAT_RECORD_FLAGS_AUDIO,0,"abc.mp4");
复制代码
开始录制音频文件
  1. int ret = AnyChatCoreSDK.StreamRecordCtrlEx(-1, false, AnyChatCoreSDK.ANYCHAT_RECORD_FLAGS_AUDIO, 0, "abc.mp4");
复制代码
结束音频录制

为什么我在temp的文件夹中找不到录制的文件呢?
作者: 佰锐科技-邵光清    时间: 2016-4-5 16:25
Zhiyu 发表于 2016-4-5 16:00
您好,我的代码是这么写的开始录制音频文件结束音频录制

为什么我在temp的文件夹中找不到录制的文件呢 ...

您好,请将客户端日志发上来分析:BRAnychatcore.log

作者: Zhiyu    时间: 2016-4-5 17:30
佰锐科技-邵光清 发表于 2016-4-5 16:25
您好,请将客户端日志发上来分析:BRAnychatcore.log
[2016-04-05 17:29:24(855)]    ---------------------------AnyChat Platform Core SDK Client Log---------------------------
[2016-04-05 17:29:24(861)]    Load BRAnyChatCore.dll success!(V5.3 Build Time:Aug 10 2015 12:20:22)
[2016-04-05 17:29:24(869)]    Load BRMiscUtil.dll success!(V5.3 Build Time:Aug 10 2015 12:20:50)
[2016-04-05 17:29:25(009)]    Load BRMediaUtil.dll success!(V5.3 Build Time:Aug 10 2015 12:20:02)
[2016-04-05 17:29:25(010)]    Load BRMediaShow.dll success!(V5.3 Build Time:Aug 10 2015 12:20:53)
[2016-04-05 17:29:25(015)]    Load BRMediaCore.dll success!(V5.3 Build Time:Aug 10 2015 12:21:04)
[2016-04-05 17:29:25(074)]    Invoke    Connect(127.0.0.1,8906)=0
[2016-04-05 17:29:25(075)]    Invoke    LoginServer(username=Bob)
[2016-04-05 17:29:25(114)]    CheckClientSocketLink     Connect(ip=127.0.0.1,port=8906)
[2016-04-05 17:29:25(236)]    Server version: V5.3(Build Time:2015-08-10 12:21:30, Server OS:Windows)
[2016-04-05 17:29:25(243)]    Message    OnConnect(bSuccess:1, errorcode=0)
[2016-04-05 17:29:25(353)]    Message    OnLoginSystem(userid=-7,errorcode=0,username=Bob), msg deliver worked(1)
[2016-04-05 17:29:25(355)]    Server running time: 0 days, 7 hours, 19 minutes, license mode:0
[2016-04-05 17:29:25(411)]    Connection to streaming media server successfully!(udp delay:31ms)
[2016-04-05 17:29:25(418)]    Invoke    EnterRoom(roomid=1)
[2016-04-05 17:29:25(463)]    Message    OnEnterRoom(roomid=1,errorcode=0,siteindex=1)
[2016-04-05 17:29:25(469)]    Message    OnUserEnterRoom(userid=-7,nickname=Bob,siteindex=1)
[2016-04-05 17:29:25(475)]    Message    OnReceiveOnlineUser(count=2,roomid=1)
[2016-04-05 17:29:25(496)]    WaveIn Audio Capture Driver(麦克风 (Realtek High Definition)
[2016-04-05 17:29:25(496)]    Audio Init, error:0, device:0, 1, 16000, 16, capmode:0
[2016-04-05 17:29:25(497)]    Audio codec init, handle:1, 11, 1, 16000, 16, 15850
[2016-04-05 17:29:25(542)]    Audio Playback Device Init(0, 1, 16000, 16), WaveOut Playback Driver
[2016-04-05 17:29:25(940)]    Message    OnP2PConnectState(userid=-6, state=1)
[2016-04-05 17:29:25(981)]    Message    OnP2PConnectState(userid=-7, state=1)
[2016-04-05 17:29:26(060)]    Message    OnP2PConnectState(userid=-6, state=3)
[2016-04-05 17:29:26(102)]    Message    OnP2PConnectState(userid=-7, state=3)
[2016-04-05 17:29:47(083)]    Invoke    StreamRecordCtrlEx(-1, 1, 0x2, 0, )=0
[2016-04-05 17:29:57(398)]    Invoke    StreamRecordCtrlEx(-1, 0, 0x2, 0, )=0

作者: 佰锐科技-江裕    时间: 2016-4-5 18:02
本帖最后由 佰锐科技-江裕 于 2016-4-5 18:11 编辑
Zhiyu 发表于 2016-4-5 17:30
[2016-04-05 17:29:24(855)]    ---------------------------AnyChat Platform Core SDK Client Log------- ...

您好,录像回调函数有没有设置。
作者: Zhiyu    时间: 2016-4-5 18:12
佰锐科技-江裕 发表于 2016-4-5 18:02
您好,录像回调函数有没有设置。

不好意思,我没有收到呀
作者: 佰锐科技-邵光清    时间: 2016-4-5 18:15
本帖最后由 佰锐科技-邵光清 于 2016-4-5 18:23 编辑
Zhiyu 发表于 2016-4-5 18:12
不好意思,我没有收到呀

您好,通话过程是否正常?
你看看程序项目的temp目录下是否有视频文件。

作者: Zhiyu    时间: 2016-4-5 18:47
佰锐科技-邵光清 发表于 2016-4-5 18:15
您好,通话过程是否正常?
你看看程序项目的temp目录下是否有视频文件。

temp文件夹是空的,没有文件
作者: 佰锐科技-邵光清    时间: 2016-4-5 21:26
Zhiyu 发表于 2016-4-5 18:47
temp文件夹是空的,没有文件

您好,在收到进入房间的回调方法之后必须调用UserSpeakControl来打开自己的音频,然后再发起录制。
作者: Zhiyu    时间: 2016-4-6 10:07
佰锐科技-邵光清 发表于 2016-4-5 21:26
您好,在收到进入房间的回调方法之后必须调用UserSpeakControl来打开自己的音频,然后再发起录制。

您好,我在录制之前打开了UserSpeakControl,但是temp文件夹中还是没有音频文件,这是什么原因呢?
我的代码是:
  1. AnyChatCoreSDK.UserSpeakControl(-1, true);
  2.             int ret = AnyChatCoreSDK.StreamRecordCtrlEx(-1,true,AnyChatCoreSDK.ANYCHAT_RECORD_FLAGS_AUDIO,0,"abc.mp4");
复制代码
开始录制
  1. int ret = AnyChatCoreSDK.StreamRecordCtrlEx(-1, false, AnyChatCoreSDK.ANYCHAT_RECORD_FLAGS_AUDIO, 0, "abc.mp4");
  2.             AnyChatCoreSDK.UserSpeakControl(-1, false);
复制代码
结束录制
作者: 佰锐科技-邵光清    时间: 2016-4-6 10:19
Zhiyu 发表于 2016-4-6 10:07
您好,我在录制之前打开了UserSpeakControl,但是temp文件夹中还是没有音频文件,这是什么原因呢?
我的 ...

您好,如果按照你这样的代码,可以延迟一下录制;我们建议是在触发了onEnterRoom之后调用UserSpeakControl来打开自己的音频,然后在发起录制。
作者: Zhiyu    时间: 2016-4-6 10:22
佰锐科技-邵光清 发表于 2016-4-6 10:19
您好,如果按照你这样的代码,可以延迟一下录制;我们建议是在触发了onEnterRoom之后调用UserSpeakContro ...

延迟录制能够生成录制的文件吗?可是文件夹中还是没有录制的文件是什么情况呢?
作者: 佰锐科技-江裕    时间: 2016-4-6 10:44
本帖最后由 佰锐科技-江裕 于 2016-4-6 10:54 编辑
Zhiyu 发表于 2016-4-6 10:22
延迟录制能够生成录制的文件吗?可是文件夹中还是没有录制的文件是什么情况呢?

您好,可能由于麦克风没有打开导致没有生成录制文件。




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