小米4c语音通话音量小是什么意思

联通3G套餐中,基本通话拨打分钟数与国内语音通话拨打分钟数区别联通3G套餐中,同样66元套餐,B套餐是“国内语音拨打分钟数200分钟“,而C套餐则是“基本通话拨打分钟数320分钟”基本通话拨打分钟数,与
国内语音通话拨打分钟数有什么区别
bwtthmn114
你好1.联通3G套餐的A、B计划的国内语音通话拨打分钟数是指你在中国大陆任何地区发起的主叫时长。也就是说无论你在国内任何地方(不包括港澳台)拨打的移动用户、联通用户、电信用户都算在里面的,说白了就是没漫游、没长途,漫游、市话、长途通通一样。66元A、B计划每月拨打时长超出套餐包含的免费时长后是每分钟0.2元,接听全免费。2.而联通3G套餐的C计划中的基本语音拨打分钟数是指你在本地拨打的本地移动用户、联通用户、电信用户的通话时长量。不过C计划也是没漫游费、没长途费的,如果你去了外地漫游拨打或者在本地拨打长途就要另外算钱,66元C计划也是每分钟0.2元。另外,如果是66元C计划,那麽每月你在本地拨打的本地用户语音通话量超出套餐包含的免费通话时长后也是每分钟0.2元。以上均原创,希望你满意我的回答,谢谢!
为您推荐:
扫描下载二维码&在C语言中是什么意思_百度知道
&在C语言中是什么意思
&与运算二进制运算中的一种另外还有|~ 如果是&&意思就不一样了&&表示的是逻辑运算符且的意思其他还有“||”或的意思
其他类似问题
为您推荐:
其他8条回答
在指针中使用1,Int *p = &a. 按位“与”
两个意思&a是取a的内存地址a&b,是按位或a&&b是逻辑判断运算符
取址运算。一般指针会用到,还有别名会用到。字符与也是这个符号
表示如果两个条件都成立则执行之后的逻辑;eg:
if((1& 2)&&(3& 1) ) &
逻辑与 。&是java中的位逻辑运算:
2&3=2; 分析如下: 2的二进制为10 ;3的二进制为11 ; 逻辑&之后为10 ||
短路或。 A||B,只有当A为假的时候才会对B进行判断。若A为真,则不继续对B进行判断。|
逻辑或。 A|B,会对A, B都进行判断 !
逻辑非,当操作数为true时,返回false,否则返回true。
取地址符号 比如 scanf(&%d&,&a); 取到a的内存地址然后把输入的数据存到a里面
字符串运算符,比如:RR&DD 输出结果为RRDD
您可能关注的推广
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁2084人阅读
算法(17)
qt中采用G.729A进行网络语音通话实验程序本文博客链接:,作者:jdh,转载请注明.环境:主机:WIN8开发环境:Qt5 3.1.2说明:G.729是电话带宽的语音信号编码的标准,G.729A是它的简化版本。本程序采样频率为8KHz,量化位数为16位,则码率为128kbps。G.729A压缩比率为1/16,则压缩后的码率为8kbps。本测试程序实现网络语音通讯的功能。源码:pro文件加载库文件LIBS += -LC:\mnt\test_audio_record -lva_g729aaudio_read.h#ifndef AUDIO_READ_H
#define AUDIO_READ_H
#include &world.h&
class Audio_Read : public QObject
Audio_Read();
/*********************************************************************
发送网络帧
*参数:frame:发送的报文
**********************************************************************/
void sig_net_tx_frame(QByteArray frame);
public slots:
void readMore();
void update();
QAudioInput* audio_ // class member.
QIODevice *myBuffer_
QByteArray file_
QByteArray buffer_
#endif // AUDIO_READ_H
audio_read.cpp 读取声卡,并压缩传输#include &audio_read.h&
#define INTERVAL
Audio_Read::Audio_Read()
//初始化编码器
va_g729a_init_encoder();
//声卡采样格式
// set up the format you want, eg.
format.setSampleRate(8000);
format.setChannelCount(1);
format.setSampleSize(16);
format.setCodec(&audio/pcm&);
format.setByteOrder(QAudioFormat::LittleEndian);
//format.setByteOrder(QAudioFormat::BigEndian);
format.setSampleType(QAudioFormat::UnSignedInt);
//format.setSampleType(QAudioFormat::SignedInt);
QAudioDeviceInfo info = QAudioDeviceInfo::defaultInputDevice();
if (!info.isFormatSupported(format)) {
qWarning()&&&default format not supported try to use nearest&;
format = info.nearestFormat(format);
audio_in = new QAudioInput(format, this);
myBuffer_in = audio_in-&start();
connect(myBuffer_in, SIGNAL(readyRead()), SLOT(readMore()));
// Records audio for 3000ms
qDebug() &&&record begin!& && format.sampleSize();
QFile file(&22.raw&);
if (!file.open(QIODevice::ReadOnly))
qDebug() && &error!!!!!!!!!&;
file_all = file.readAll();
Count = 0;
qDebug() && &hahahahaha& && file_all.length() && (int)file_all[0] &&(int)file_all[1] && (int)file_all[2];
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
//timer-&start(10 * INTERVAL);
//timer-&start(5);
first = 0;
void Audio_Read::readMore()
char bytes[800] = {0};
int i = 0;
short input_short[L_FRAME] = {0};
int j = 0;
if (!audio_in)
qDebug() && &error1111111&;
QByteArray m_buffer(2048,0);
qint64 len = audio_in-&bytesReady();
qDebug() && &len1 = & &&
qint64 l = myBuffer_in-&read(m_buffer.data(), len);
//qDebug() && &len2 = & &&
if (len % 640 != 0)
qDebug() && &error2222222&;
if (first & 30)
if (first &= 100)
first = 100;
qDebug() && &ggggggggggggggggg&;
buffer_tx.append(m_buffer.data(),l);
for (i = 0;i & 640 / (L_FRAME * 2);i++)
for (j = 0;j & L_FRAME;j++)
input_short[j] = m_buffer[2 * j + i * L_FRAME * 2] |
((short)(m_buffer[2 * j + 1 + i * L_FRAME * 2]) && 8);
va_g729a_encoder(input_short, (unsigned char *)bytes);
frame.append(bytes,L_FRAME_COMPRESSED);
if (Server_Ip == QHostAddress(&0&))
qDebug() && &length--------------------& && buffer_tx.length();
short num = 0;
for (i = 0;i & buffer_tx.length() / (L_FRAME * 2);i++)
for (j = 0;j & L_FRAME;j++)
input_short[j] = (uint8_t)buffer_tx[2 * j + i * L_FRAME * 2] |
(((uint8_t)buffer_tx[2 * j + 1 + i * L_FRAME * 2]) && 8);
num = buffer_tx[2 * j + i * L_FRAME * 2] |
((buffer_tx[2 * j + 1 + i * L_FRAME * 2]) && 8);
qDebug() && &---------!!!!!------------& && num && input_short[j];
va_g729a_encoder(input_short, (unsigned char *)bytes);
frame.append(bytes,L_FRAME_COMPRESSED);
buffer_tx.clear();
if (Server_Ip != QHostAddress(&0&))
//frame.clear();
//frame.append(m_buffer.data(), len);
sig_net_tx_frame(frame);
void Audio_Read::update()
char bytes[800] = {0};
int i = 0;
short input_short[L_FRAME] = {0};
int j = 0;
if (Count * L_FRAME_COMPRESSED * INTERVAL & file_all.length())
if (Server_Ip != QHostAddress(&0&))
frame.append(file_all.data() + Count * L_FRAME_COMPRESSED * INTERVAL,L_FRAME_COMPRESSED * INTERVAL);
sig_net_tx_frame(frame);
audio_write.h#ifndef AUDIO_WRITE_H
#define AUDIO_WRITE_H
#include &world.h&
class Audio_Write : public QObject
Audio_Write();
public slots:
void finishedPlaying(QAudio::State state);
/*********************************************************************
网络接收数据包
*参数:data:接收的数据
**********************************************************************/
void slot_net_rx(QByteArray data);
void update();
void update2();
QAudioOutput* audio_ // class member.
QIODevice *myBuffer_
QByteArray Buffer_P
QByteArray file_
#endif // AUDIO_WRITE_H
audio_write.cpp 接收语音数据,并解码播放#include &audio_write.h&
#define INTERVAL
Audio_Write::Audio_Write()
//初始化解码器
va_g729a_init_decoder();
// set up the format you want, eg.
format.setSampleRate(8000);
format.setChannelCount(1);
format.setSampleSize(16);
format.setCodec(&audio/pcm&);
format.setByteOrder(QAudioFormat::LittleEndian);
//format.setByteOrder(QAudioFormat::BigEndian);
format.setSampleType(QAudioFormat::UnSignedInt);
//format.setSampleType(QAudioFormat::SignedInt);
QAudioDeviceInfo info = QAudioDeviceInfo::defaultOutputDevice();
if (!info.isFormatSupported(format)) {
qWarning()&&&111default format not supported try to use nearest&;
format = info.nearestFormat(format);
audio_out = new QAudioOutput(format, this);
connect(audio_out,SIGNAL(stateChanged(QAudio::State)),SLOT(finishedPlaying(QAudio::State)));
myBuffer_out = audio_out-&start();
qDebug() &&&play begin!& &&
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
//timer-&start(10);
QFile file(&22.raw&);
if (!file.open(QIODevice::ReadOnly))
qDebug() && &error!!!!!!!!!&;
file_all = file.readAll();
Count = 0;
qDebug() && &hahahahaha& && file_all.length() && (int)file_all[0] &&(int)file_all[1] && (int)file_all[2];
QTimer *timer2 = new QTimer(this);
connect(timer2, SIGNAL(timeout()), this, SLOT(update2()));
//timer2-&start(10 * INTERVAL);
timer2-&start(5);
void Audio_Write::update()
if (Buffer_Play.length() & 0)
if (Buffer_Play.length() % (L_FRAME * 2) != 0)
Buffer_Play.clear();
myBuffer_out-&write(Buffer_Play.data(),L_FRAME * 2);
Buffer_Play = Buffer_Play.mid(L_FRAME * 2);
qDebug() && &gogogogo&;
qDebug() && &------------------&;
void Audio_Write::update2()
char bytes[800] = {0};
int i = 0;
short input_short[L_FRAME] = {0};
int j = 0;
//检查是否有剩余空间
qDebug() && &aaaaaaaaa222:& && audio_out-&bytesFree()
&& audio_out-&periodSize() && Buffer_Play.length();
if (audio_out && audio_out-&state() != QAudio::StoppedState) {
int chunks = audio_out-&bytesFree()/audio_out-&periodSize();
while (chunks)
if (Buffer_Play.length() &= audio_out-&periodSize())
myBuffer_out-&write(Buffer_Play.data(),audio_out-&periodSize());
Buffer_Play = Buffer_Play.mid(audio_out-&periodSize());
myBuffer_out-&write(Buffer_Play);
Buffer_Play.clear();
if (Count * L_FRAME_COMPRESSED * INTERVAL & file_all.length())
frame.append(file_all.data() + Count * L_FRAME_COMPRESSED * INTERVAL,L_FRAME_COMPRESSED * INTERVAL);
slot_net_rx(frame);
void Audio_Write::finishedPlaying(QAudio::State state)
if(state == QAudio::IdleState) {
audio_out-&stop();
inputFile.close();
delete audio_
qDebug() && &play end!& &&
if(state == QAudio::IdleState)
if (Buffer_Play.length() != 0)
myBuffer_out-&write(Buffer_Play);
Buffer_Play.clear();
/*********************************************************************
网络接收数据包
*参数:data:接收的数据
**********************************************************************/
void Audio_Write::slot_net_rx(QByteArray data)
char bytes[800] = {0};
int i = 0;
short output_short[L_FRAME] = {0};
int j = 0;
//memcpy(bytes,data.data(),data.length());
qDebug() && &lenght!!!!!!!!!!!!!!& && data.length();
for (i = 0;i & data.length() / L_FRAME_COMPRESSED;i++)
va_g729a_decoder((unsigned char*)data.data() + i * L_FRAME_COMPRESSED, output_short, 0);
for (j = 0;j & L_FRAME;j++)
bytes[j * 2] = output_short[j];
bytes[j * 2 + 1] = output_short[j] && 8;
frame.append(bytes,L_FRAME * 2);
int k = 0;
for (i = 0;i & data.length() / L_FRAME_COMPRESSED;i++)
va_g729a_decoder((unsigned char*)data.data() + i * L_FRAME_COMPRESSED, output_short, 0);
for (j = 0;j & L_FRAME;j++)
bytes[k++] = output_short[j];
bytes[k++] = output_short[j] && 8;
//qDebug() && &size!!!& && myBuffer_out-&size();
//if (audio_out-&state() == QAudio::IdleState)
qDebug() && &播放&;
//myBuffer_out-&write(frame);
if (audio_out-&state() == QAudio::IdleState)
myBuffer_out-&write(frame);
Buffer_Play.clear();
Buffer_Play.append(frame);
qDebug() && &gogogogo2222222&;
//myBuffer_out-&write(data);
//myBuffer_out-&write(bytes,k);
qDebug() && &忙碌&;
va_g729a.h 注意函数前加extern &C&/*--------------------------------------------------------------------------------*
* This material is trade secret owned by VoiceAge Corporation
* and is strictly confidential and shall remain as such.
* Copyright ? VoiceAge Corporation. All Rights Reserved. No part of
* this material may be reproduced, stored in a retrieval system, or transmitted, *
* in any form or by any means, including, but not limited to, photocopying,
electronic, mechanical, recording, or otherwise, without the prior written
* permission of VoiceAge Corporation.
* This material is subject to continuous developments and improvements. All
* warranties implied or expressed, including but not limited to implied
* warranties of merchantability, or fitness for purpose, are excluded.
* ACELP and VoiceAge are registered trademark and trademark of VoiceAge
* Corporation in Canada and / or other countries. Any unauthorized use is
* strictly prohibited.
*--------------------------------------------------------------------------------*
* VoiceAge Corporation
* 750, Chemin Lucerne
* Suite 250
* Ville Mont-Royal (Quebec)
* Canada, H3R 2H6
* Tel. (514) 737-4940, fax. (514) 908-2037
*--------------------------------------------------------------------------------*
*--------------------------------------------------------------------------------*
va_g729a.h
~~~~~~~~~~~~~~~~~~
*--------------------------------------------------------------------------------*
va_g729a API functions prototypes and constants */
L_FRAME_COMPRESSED 10
extern &C& void va_g729a_init_encoder();
extern &C& void va_g729a_encoder(short *speech, unsigned char *bitstream);
extern &C& void va_g729a_init_decoder();
extern &C& void va_g729a_decoder(unsigned char *bitstream, short *synth_short, int bfi);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:751259次
积分:10740
积分:10740
排名:第926名
原创:159篇
转载:19篇
评论:484条
阅读:16574
阅读:39249
文章:19篇
阅读:177881
阅读:18456
(1)(5)(3)(5)(2)(2)(2)(4)(3)(8)(2)(4)(2)(2)(1)(3)(4)(5)(1)(2)(4)(5)(6)(2)(1)(1)(4)(2)(1)(1)(2)(3)(1)(6)(5)(1)(6)(9)(11)(5)(4)(8)(18)(2)(2)(1)(1)(3)(2)(3)电话薄管理系统的c语言程序_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
电话薄管理系统的c语言程序
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩12页未读,继续阅读
你可能喜欢

我要回帖

更多关于 语音通话阻止什么意思 的文章

 

随机推荐