本文目录一览

1,G711对比G721对比G722哪个好

应该是越新的版本占用越多。当然如果优化过就难说……但同系列的因为要往前兼容,使用一般后面的型号都比前面的占用大点……不过应该不会很明显

G711对比G721对比G722哪个好

2,g711智选商城靠谱吗

比较正规,母公司是国外贸易,前段时间还收购了素沐SUMUMAN。实力应该还是比较强的呢。
我是来看评论的

g711智选商城靠谱吗

3,g711与PCM转换是可逆的吗

Windows的Convert工具可以把PCM音频格式的文件转换成Microsoft的WAV格式的文件。
问度娘

g711与PCM转换是可逆的吗

4,听说EVi易汇环球集团很有实力旗下的g711智选商城怎么样呢 搜

EVi易汇环球是集美国及加拿大资金的集团,旗下子公司十余个,实力也是不小的。国内的素沐和g711智选商城都是其旗下的。
虽然我很聪明,但这么说真的难到我了

5,g711智选商城隶属的易汇环球集团这个企业大吗

易汇环球集团确实是大企业。公司数量和分布的区域来看都是属于规模较大的企业。
evi易汇环球是集美国及加拿大资金的集团,旗下子公司十余个,实力也是不小的。国内的素沐和g711智选商城都是其旗下的。

6,g711音频如何解码

建议楼主去百度一下ffmpeg,G711的解码方案也在其中。摘抄部分内容如下: FFmpeg实现的其它音频视频编码: ...... ITU-T vocoder standards: G.711 μ-law, G.711 A-law, G.722.2 (aka AMR-WB. supports via OpenCORE) and G.726
这是很久的代码了,有点忘记了,给你参考下。 public final static string tag = "defaulttalkbacksession"; talkbacksession session; codeclibobj obj; private blockingqueueinputqueue = new linkedblockingqueue(); @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); try { session = new defaulttalkbacksession("192.168.78.65",15528); obj = session.codecabilityquery(); if (obj != null) { session.startlivelistening(new talkbacksession.onaudiodatareceivelistener() { @override public void onaudiodatareceived(byte[] data) { log.d(tag, "收到音频数据:" + utils.tohex(data)); try { inputqueue.put(data); } catch (interruptedexception e) { } } }, obj, 1); session.startcall(obj, 1); ulaw_play(); ulaw_recored(); } } catch (exception e) { e.printstacktrace(); //to change body of catch statement use file | settings | file templates. } } protected void ondestroy() { super.ondestroy(); if (session != null) { if (obj != null) { session.stoplivelistening(); session.endcall(); } ((defaulttalkbacksession) session).stop(); } ulaw_stop(); } private void ulaw_stop(){ if(ulaw_decode_thread != null){ ulaw_decode_thread.interrupt(); } ulawrunning = false; } private void ulaw_play(){ ulawrunning = true; (ulaw_decode_thread = new thread(ulaw_decode)).start(); } boolean ulawrunning = false; thread ulaw_decode_thread; /** * 解码线程 */ runnable ulaw_decode = new runnable(){ public void run() { try { thread.sleep(200); } catch (interruptedexception e) { e.printstacktrace(); } android.os.process.setthreadpriority(android.os.process.thread_priority_audio); int samp_rate = 8000 ; int maxjitter = audiotrack.getminbuffersize(samp_rate, audioformat.channel_configuration_mono, audioformat.encoding_pcm_16bit); audiotrack track = new audiotrack(audiomanager.stream_voice_call,samp_rate,audioformat.channel_configuration_mono, audioformat.encoding_pcm_16bit, maxjitter, audiotrack.mode_stream); track.play(); try { while(ulawrunning) { byte[] datafordecode = new byte[0]; try { datafordecode = inputqueue.take(); } catch (interruptedexception e) { } short[] audiodata = new short [datafordecode.length]; //decode g711.ulaw2linear(datafordecode, audiodata, audiodata.length); log.d(tag, "audiodata=" + utils.tohex(audiodata)) ; //play track.write(audiodata, 0, audiodata.length); } } catch (exception e) { e.printstacktrace(); }finally{ track.release(); track = null; } } }; runnable ulaw_encode = new runnable(){ public void run() { android.os.process.setthreadpriority(android.os.process.thread_priority_audio); audiorecord record = getaudiorecord(); int frame_size = 160;// int frame_rate = 8000/frame_size ;// long frame_period = 1000 / frame_rate; short [] audiodata = new short [frame_size]; byte[] encodedata = new byte[frame_size]; int num = 0; try { while(ulawrunning) { num = record.read(audiodata, 0, frame_size); if(num<=0) continue; calc2(audiodata,0,num); //进行pcmu编码 g711.linear2ulaw(audiodata, 0, encodedata, num); //send session.sendaudiodata(encodedata); } } catch (exception e) { e.printstacktrace(); } finally{ record.release(); } } }; void calc2(short[] lin,int off,int len) { int i,j; for (i = 0; i < len; i++) { j = lin[i+off]; lin[i+off] = (short)(j>>1); } } private void ulaw_recored(){ new thread (ulaw_encode).start(); } private audiorecord getaudiorecord(){ int samp_rate = 8000 ; int min = audiorecord.getminbuffersize(samp_rate, audioformat.channel_configuration_mono, audioformat.encoding_pcm_16bit); log.e(tag, "min buffer size:"+min); audiorecord record = null; record = new audiorecord( mediarecorder.audiosource.mic,//the recording source samp_rate, //采样频率,一般为8000hz/s audioformat.channel_configuration_mono, audioformat.encoding_pcm_16bit, min); record.startrecording(); return record; }

文章TAG:g711对比  哪个  
下一篇