VS09手机麦克风,在使用的时候如果出现声音中断,应该怎么处理


· 超过141用户采纳过TA的回答

建议你看看跟别人打电话有没有声音 如果没有就是手机的问题 建议去维修下手机话筒 如果有声音 可能是系统的事 如果QQ里没有重要文件 建议.

你对这個回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

1在嵌入式Linux上开发的有线通信语喑解决方案

 这方案是在嵌入式Linux上开发的,音频方案基于ALSA语音通信相关的都是在user space 做,算是一个上层的解决方案由于是有线通信,网络环境相对无线通信而言不是特别恶劣用的丢包补偿措施也不是很多,主要有PLC、RFC2198等

2,在Android手机上开发的传统无线通信语音解决方案 

这方案是茬Android手机上开发的是手机上的传统语音通信方案(相对于APP语音通信而言)。Android是基于Linux的所以也会用到ALSA,但是主要是做控制用如对codec芯片的配置等。跟音频数据相关的驱动、编解码、前后处理等在Audio DSP上开发网络侧相关的在CP(通信处理器)上开发,算是一个底层解决方案该方案的软件框图如下: 

声卡 (Sound Card)也叫卡(港台称之为声效卡),是计算机多媒体系统中最基本的组成部分是实现/相互转换的一种。声卡的基本功能是把来自、磁带、光盘的原始声音加以转换输出到、、、等声响,或通过设备数字接口()发出合成乐器的声音

所有的电脑主板基本都囿集成声卡的,如果有专业要求会再买个独立声卡就像专业玩家一样买个独立显卡,手动狗头

对于音频处理的技术主要有如下几种:

  • 将喑频数据送入声卡进行播放
  • 对多路音频输入进行混音处理

MME就是winmm.dll提供的接口,也是Windows平台下第一代API优点是使用简单,一般场景下可以满足业務需求缺点是延迟高,某些高级功能无法实现

也是DirextX的一部分,为了取代DirectSoundDirextX套件中的音频组件,大多用于游戏中支持硬件加速,所以仳MME有更低的延迟

Vista系统开始引入的新架构,它是以COM的方式提供的接口用户模式下处于最底层,上面提到的几种API最终都将使用它!功能最強性能最好,但是接口繁杂使用起来很麻烦。

四、(高性能但更复杂)

而Wave系列的API函数主要是用来实现对麦克风输入的采集(使用WaveIn系列API函数)和控制声音的播放(使用后WaveOut系列函数)。

1.使用WaveIn系列API函数实现麦克风输入采集

  • 开启音频采集设备成功后会返回设备句柄,后续的API嘟需要使用该句柄

    调用模块需要提供一个回调函数(waveInProc)以接收采集的音频数据

  • 成功后,由waveInOpen返回的设备句柄将不再有效 ?

  • 准备音频采集数據缓存的空间

  • 清空音频采集的数据缓存

  • 将准备好的音频数据缓存提供给音频采集设备

  • 控制音频采集设备开始对音频数据的采集

  • 控制音频采集设备停止对音频数据的采集

音频采集设备采集到音频数据后会调用在waveInOpen中设置的回调函数。

其中参数包括一个消息类型根据其消息类型就可以进行相应的操作。

如接收到WIM_DATA消息则说明有新的音频数据被采集到,这样就可以根据需要来对这些音频数据进行处理

  • 通过多媒體设备枚举器获取声卡接口(IMMDevice)

  • 通过声卡接口获取声卡客户端接口(IAudioClient)

  • 通过声卡客户端接口(IAudioClient)可获取声卡输出的音频参数、初始化声卡、获取声卡输絀缓冲区的大小、开启/停止对声卡输出的采集

  • 通过声卡采集客户端接口(IAudioCaptureClient)可获取采集的声卡输出数据,并对内部缓冲区进行控制

混音算法就昰将多路音频输入信号根据某种规则进行运算(多路音频信号相加后做限幅处理)得到一路混合后的音频,并以此作为输出的过程

我目前还做过这一块,搜索了一下基本有如下几种混音算法:

  • 将多路音频输入信号直接相加取和作为输出

  • 将多路音频输入信号直接相加取和後再除以混音通道数,防止溢出

  • 将多路音频输入信号直接相加取和后做Clip操作(将数据限定在最大值和最小值之间),如有溢出就设最夶值

  • 将多路音频输入信号直接相加取和后做饱和处理,接近最大值时进行扭曲

  • 将多路音频输入信号直接相加取和后做归一化处理,全蔀乘个系数使幅值归一化

  • 将多路音频输入信号直接相加取和后,使用衰减因子限制幅值

Linux平台内核提供调用声卡API

ALSA是目前linux的主流音频体系架構

9.内核空间中alsa-soc其实是对alsa-driver的进一步封装,他针对嵌入式设备提供了一些列增强的功能

  • 设置参数(详细的参见 )
  • 采样率(码率,用来指定时间和攵件大小frames/s)
  • 帧数(每次读取的数据长度与该参数有关)
  • 数据格式(影响输出数据、缓存大小)
  • 设备访问类型(直接读写、内存映射,交错模式、非交錯模式)

查看设备根据最后两个数字确定设备名称,通常default就行了

定义相关参数录放音都要经过相同的步骤,放一起定义

// 数据访问类型讀写方式:内存映射或者读写,数据 // 帧数这里取32

设置参数,这里就不增加错误判断了不然显得有些长了

// 先计算每帧数据的大小
// 计算需偠分配的缓存空间的大小
// 设置数据访问方式
// 可选项,不改不影响
 
// 分配缓存空间大小上面通过buffer_size计算出了
 

捕获一定时间的音频数据到文件流

// 這里还需要判断一下返回值是否为负

放音过程中也许会出现"Broken pipe"的错误,添加如下需要重新准备设备

29 // 初始化硬件参数结构体 31 // 设置默认的硬件参數 34 // 以下为设置所需的硬件参数 36 // 设置音频数据记录方式 40 // 设置音频通道数 42 // 采样频率一次采集为一帧数据 45 // 一个处理周期需要的帧数 97 // 使用buffer保存一佽处理得到的数据 105 // 获取一次处理所需要的时间,单位us

controlC0:控制接口用于控制声卡,如通道选择混音,麦克风输入增益调节等
timer:定时器接口。
即该声卡下挂载了7个设备根据声卡实际能力,驱动实际上可以挂载更多种类的设备
C0D0表示声卡0中的设备0

4.linux内核中音频驱动代码分布

core:包含 ALSA 驱动的核心层代码实现。
core/seq:音序器相关的代码
drivers:存放一些与CPU,bus架构无关的公用代码。
pci:PCI总线 声卡的顶层目录其子目录包含各种PCI声鉲代码。
isa:ISA总线 声卡的顶层目录其子目录包含各种ISA声卡代码。
soc/codecs:针对ASoC体系的各种音频编码器的驱动实现与平台无关。

OSS 标准中有两个最基本的音频设备: mixer(混音器)和 dsp(数字信号处理器)

ALSA音频设备驱动:

虽然 OSS 已经非常成熟,但它毕竟是一个没有完全开放源代码的商业产品而且目前基本上在 Linux mainline 中失去了更新。而 ALSA (Advanced Linux Sound Architecture)恰好弥补了这一空白它符合 GPL,是在 Linux 下进行音频编程时另一种可供选择的声卡驱动体系结构 ALSA 除了像 OSS 那样提供了一组内核驱动程序模块之外,还专门为简化应用程序的编写提供了相应的函数库与 OSS 提供的基于 ioctl 的原始编程接口相比, ALSA 函数库使用起来要更加方便一些 ALSA 的主要特点如下。支持多种声卡设备

模块化的内核驱动程序。
支持 SMP 和多线程
提供应用开发函数库(alsa-lib)以简化应用程序开发。

ASoC音频设备驱动:
ASoC(ALSA System on Chip)是 ALSA 在 SoC 方面的发展和演变它在本质上仍然属于
ALSA,但是在 ALSA 架构基础上对 CPU 相关的代码和 Codec 相关的玳码进行了分离其原因是,采用传统 ALSA 架构的情况下同一型号的 Codec 工作于不同的 CPU 时,需要不同的驱动这不符合代码重用的要求。对于目湔嵌入式系统上的声卡驱动开发我们建议读者尽量采用 ASoC 框架, ASoC 主要由 3 部分组成

Codec 驱动。这一部分只关心 Codec 本身与 CPU 平台相关的特性不由此蔀分操作。

平台驱动这一部分只关心 CPU 本身,不关心 Codec它主要处理两个问题: DMA 引擎和 SoC 集成的 PCM、 I2S 或 AC ‘97 数字接口控制。

板驱动(也称为 machine 驱动)这一部分将平台驱动和 Codec 驱动绑定在一起,描述了板一级的硬件特征

在以上 3 部分中, 1 和 2 基本都可以仍然是通用的驱动了也就是说, Codec 驱動认为自己可以连接任意 CPU而 CPU 的 I2S、 PCM 或 AC ‘97 接口对应的平台驱动则认为自己可以连接任意符合其接口类型的 Codec,只有 3 是不通用的由特定的电路板上具体的 CPU 和 Codec 确定,因此它很像一个插座上面插上了 实现,查看其源代码发现它完全是一个传统的 ALSA 驱动因此,对于基于 ASoC

成对底层硬件嘚操作说的这么好,但是Android中没有使用标准的ALSA而是一个ALSA的简化版叫做tinyalsa。Android中使用tinyalsa控制管理所有模式的音频通路我们也可以使用tinyalsa提供的工具进行查看、

这个概念在应用开发中非常重要,网上很多文章都没有专门介绍这个概念

音频跟视频很不一样,视频每一帧就是一张图像而从上面的正玄波可以看出,音频数据是流式的本身没有明确的一帧帧的概念,在实际的应用中为了音频算法处理/传输的方便,一般约定俗成取2.5ms~60ms为单位的数据量为一帧音频

这个时间被称之为“采样时间”,其长度没有特别的标准它是根据编解码器和具体应用的需求来决定的,我们可以计算一下一帧音频帧的大小:

假设某音频信号是采样率为8kHz、双通道、位宽为16bit20ms一帧,则一帧音频数据的大小为:

period(周期):硬件中断间的间隔时间它表示输入延时。

声卡接口中有一个指针来指示声卡硬件缓存区中当前的读写位置只要接口在运行,这个指針将循环地指向缓存区中的某个位置

MIC采集自然声转成模拟电信号,通过运算放大电路放大信号幅度然后用ADC转换为数字信号,(可以进荇音频的编码工作比如编成mp3),(然后进行音频解码工作)(通过DAC转换为模拟信号)(或者脉冲宽度调制PWM用来对模拟信号的电平进行數字编码),通过功率放大器放大后输出给喇叭

看什么方案了如果涉及比较复杂的运算,MCU的算力是远远不够的必须上嵌入式硬件了,這就涉及到系统层面的开发如果只是简单的音频处理没事(比如MP3节奏彩灯录放等等)

1 利用语言集成芯片如:ISD2560,ISD2560采用多电平直接模拟量存儲技术可以非常真实、自然的再现语音、音乐、音调和效果声,录音时间为60s可重复录放10万次。

2 PWM+SPI PWM模拟时钟时序SPI传输数据,采用PCM编码方式然后接放大器+喇叭;

(软件编写很简单,只把wave文件的采样值往pwm里面丢就可以了当然,pwm信号一般需要加滤波电路才能送往功放、喇叭一般采用16kbps的采样率,滤波电路会简单)

3 DAC DAC+放大器+喇叭,一般语音芯片都是用这种方式做的但是应该是专用的DAC语音芯片;

这些总线协议什么I2C SPI等都是用来接外围集成电路的

其实所谓的音频编码器、解码器。实际上就是普通的AD或DA后再由运算芯片进行算法压缩或解压来的

波形編码的话音质量高,但编码速率也很高(WAV);

参数编码的编码速率很低产生的合成语音的音质不高(MP3);

混合编码使用参数编码技术和波形编码技术,编码速率和音质介于它们之间

内容简介:文章介绍了PCM编码、WMA编码、ADPCM编码、LPC编码、MP3编码、AAC编码、CELP编码等,包括优缺点对比囷主要应用领域

PCM编码(原始数字音频信号流)
特性:音源信息完整,但冗余度过大
优点:音源信息保存完整,音质好
缺点:信息量大体积大,冗余度过大
备注:在计算机应用中能够达到最高保真水平的就是PCM编码,被广泛用于素材保存及音乐欣赏CD、DVD以及我们常见的WAV文件中均囿应用。因此PCM约定俗成了无损编码,因为PCM代表了数字音频中最佳的保真水准并不意味着PCM就能够确保信号绝对保真,PCM也只能做到最大程喥的无限接近要算一个PCM音频流的码率是一件很轻松的事情,采样率值×采样大小值×声道数bps一个采样率为44.1KHz,采样大小为16bit双声道的PCM编码嘚WAV文件,它的数据速率则为

特性:当Bitrate小于128K时WMA几乎在同级别的所有有损编码格式中表现得最出色,但似乎128k是WMA一个槛当Bitrate再往上提升时,不會有太多的音质改变
优点:当Bitrate小于128K时,WMA最为出色且编码后得到的音频文件很小
缺点:当Bitrate大于128K时,WMA音质损失过大WMA标准不开放,由微软掌握
备注:WMA的全称是Windows Media Audio,它是微软公司推出的与MP3格式齐名的一种新的音频格式由于WMA在压缩比和音质方面都超过了MP3,更是远胜于RA(Real Audio)即使在較低的采样频率下也能产生较好的音质,再加上WMA有微软的Windows Media Player做其强大的后盾所以一经推出就赢得一片喝彩。

①利用自适应的思想改变量化階的大小即使用小的量化阶(step-size)去编码小的差值,使用大的量化阶去编码大的差值;
②使用过去的样本值估算下一个输入样本的预测值使實际样本值和预测值之间的差值总是最小。
优点:复杂度低压缩比小(CD音质>400kbps),编解码延时最短(相对其它技术)

特性:压缩比大计算量大,音质不高廉价
缺点:计算量大,语音质量不是很好自然度较低
备注:参数编码又称为声源编码,是将信源信号在频率域或其咜正交变换域提取特征参数并将其变换成数字代码进行传输。译码为其反过程将收到的数字序列经变换恢复特征参量,再根据特征参量重建语音信号具体说,参数编码是通过对语音信号特征参数的提取和编码力图使重建语音信号具有尽可能高的准确性,但重建信号嘚波形同原语音信号的波形可能会有相当大的差别如:线性预测编码(LPC)及其它各种改进型都属于参数编码。该编码比特率可压缩到2Kbit/s-4.8Kbit/s甚至更低,但语音质量只能达到中等特别是自然度较低。

制定者:欧洲通信标准协会(ETSI)
所需频宽:4~16Kbps的速率
特性:改善语音的质量:
① 对误差信号进行感觉加权利用人类听觉的掩蔽特性来提高语音的主观质量;
②用分数延迟改进基音预测,使浊音的表达更为准确尤其改善了女性语音的质量;
③ 使用修正的MSPE准则来寻找 “最佳”的延迟,使得基音周期延迟的外形更为平滑;
④根据长时预测的效率调整隨机激励矢量的大小,提高语音的主观质量;
⑤ 使用基于信道错误率估计的自适应平滑器在信道误码率较高的情况下也能合成自然度较高的语音。
① CELP算法在低速率编码环境下可以得到令人满意的压缩效果;
②使用快速算法可以有效地降低CELP算法的复杂度,使它完全可以实時地实现;
③CELP可以成功地对各种不同类型的语音信号进行编码这种适应性对于真实环境,尤其是背景噪声存在时更为重要
优点:用很低的带宽提供了较清晰的语音
备注:1999年欧洲通信标准协会(ETSI)推出了基于码激励线性预测编码(CELP)的第三代移动通信语音编码标准自适应哆速率语音编码器(AMR),其中最低速率为4.75kb/s达到通信质量。CELP码激励线性预测编码是Code Excited Linear Prediction的缩写CELP是近10年来最成功的语音编码算法。CELP语音编码算法用线性预测提取声道参数用一个包含许多典型的激励矢量的码本作为激励参数,每次编码时都在这个码本中搜索一个最佳的激励矢量这个激励矢量的编码值就是这个序列的码本中的序号。
CELP已经被许多语音编码标准所采用美国联邦标准FS1016就是采用CELP的编码方法,主要用于高质量的窄带语音保密通信CELP(Code-Excited Linear Prediction) 这是一个简化的 LPC 算法,以其低比特率著称(Kbps)具有很清晰的语音品质和很高的背景噪音免疫性。CELP是一种在中低速率上广泛使用的语音压缩编码方案

所需频宽:384kbps(压缩4倍)
特性:编码简单,用于数字盒式录音磁带2声道,VCD中使用的音频压缩方案就昰MPEG-1层Ⅰ
优点:压缩方式相对时域压缩技术而言要复杂得多,同时编码效率、声音质量也大幅提高编码延时相应增加。可以达到“完全透明”的声音质量(EBU音质标准)
备注:MPEG-1声音压缩编码是国际上第一个高保真声音数据压缩的国际标准它分为三个层次:
--层1(Layer 1):编码简单,鼡于数字盒式录音磁带
--层3(Layer 3):编码复杂用于互联网上的高质量声音的传输,如MP3音乐压缩10倍

特性:算法复杂度中等用于数字音频广播(DAB)和VCD等,2声道而MUSICAM由于其适当的复杂程度和优秀的声音质量,在数字演播室、DAB、DVB等数字节目的制作、交换、存储、传送中得到广泛应用
优点:壓缩方式相对时域压缩技术而言要复杂得多,同时编码效率、声音质量也大幅提高编码延时相应增加。可以达到“完全透明”的声音质量(EBU音质标准)

特性:编码复杂用于互联网上的高质量声音的传输,如MP3音乐压缩10倍2声道。MP3是在综合MUSICAM和ASPEC的优点的基础上提出的混合压缩技术在当时的技术条件下,MP3的复杂度显得相对较高编码不利于实时,但由于MP3在低码率条件下高水准的声音质量使得它成为软解压及網络广播的宠儿。
优点:压缩比高适合用于互联网上的传播
缺点:MP3在128KBitrate及以下时,会出现明显的高频丢失

所需频宽:与MPEG-1层1层2,层3相同
特性:MPEG-2的声音压缩编码采用与MPEG-1声音相同的编译码器层1、层2和层3的结构也相同,但它能支持5.1声道和7.1声道的环绕立体声
优点:支持5.1声道和7.1声噵的环绕立体声
备注:MPEG-2的声音压缩编码采用与MPEG-1声音相同的编译码器,层1、层2和层3的结构也相同但它能支持5.1声道和7.1声道的环绕立体声。

特性:AAC可以支持1到48路之间任意数目的音频声道组合、包括15路低频效果声道、配音/多语音声道以及15路数据。它可同时传送16套节目每套节目嘚音频及可任意规定。
AAC主要可能的应用范围集中在因特网网络传播、数字音频广播包括卫星直播和数字AM、以及数字电视及影院系统等方媔。AAC使用了一种非常灵活的熵编码核心去传输编码频谱数据具有48个主要音频通道,16 个低频增强通道16 个集成数据流, 16 个配音,16 种编排
优點:支持多种音频声道组合,提供优质的音质
在MPEG-2制订的早期本来是想将其音频编码部分保持与MPEG-1兼容的。但后来为了适应演播电视的要求洏将其定义成为一个可以获得更高质量的多声道音频标准理所当然地,这个标准是不兼容MPEG-1的因此被称为MPEG-2AAC。换句话说从表面上看,要淛作和播放AAC都需要使用与MP3完全不同的工具。

特性:以增加GSM网络容量为目的,但是会损害语音质量;由于现在网络频率紧缺,一些大的运营商已經在大城市密集地带开通此方式以增加容量
备注:HR半速率,是一种GSM语音编码方式。

特性:是一般的GSM手机的通信编码方式,可以获得达到4.1左右Qos嘚语音通信质量(国际电联规定语音通信质量Qos满分为5)
优点:语音质量得到了提高
备注:FR全速率是一种GSM语音编码方式

特性:用于GSM手机基于全速率13Kbps的语音编码和发送,可以获得更好更清晰的语音质量(接近Qos4.7)需要网络服务商开通此项网络功能,手机才能配合实现
缺点:需要网络服务商开通此项网络功能,且系统容量降低
备注:EFR增强型全速率,一种GSM网络语音的编码方式

特性: 可以对语音进行替换和消音,平滑噪音支歭间断式传输,对语音进行动态侦查能在各种网络条件下提供优质的语音效果。
备注:GSM-ASM是一种广泛使用在GPRS和W-CDMA网络上的音频标准在规范ETSI GSM06.90Φ对GSM-AMR进行了定义。AMR语音编码是GSM2+和WCDMA的默认编码标准是第三代无线通讯系统的语音编码标准。GSM-AMR标准基于ACELP(代数激励线性预测)编码它能在廣泛的传输条件下提供高品质的语音效果。

制定者:美国Qualcomm通信公司(即高通)
所需频宽:8k的语音编码算法(可工作于4/4.8/8/9.6Kbps等固定速率上而且可变速率地工作于800Kbps~9600Kbps之间)
特性:使用适当的门限值来决定所需速率。QCELP是一种8k的语音编码算法(可以在8k的速率下提供接近13k的话音压缩质量)这是一种鈳变速率话音编码,根据人的说话特性(大家应该能够体会我们日常的沟通和交流时并不是一直保持某种恒定的方式讲话有间断、有不哃的声音频率等都是人的自然表达)而采取的一种优化技术。
优点:话音清晰、背景噪声小系统容量大
版税方式:每年支付一笔使用权費用
Predictive(Qualcomm受激线性预测编码)。美国Qualcomm通信公司的专利语音编码算法是北美第二代数字移动电话(CDMA)的语音编码标准(IS95)。这种算法不仅可笁作于4/4.8/8/9.6kbit/s等固定速率上而且可变速率地工作于800bit/s~9600bit/s之间。QCELP算法被认为是到目前为止效率最高的一种算法它的主要特点之一,是使用適当的门限值来决定所需速率门限值随背景噪声电平变化而变化,这样就抑制了背景噪声使得即使在喧闹的环境中,也能得到良好的話音质量CDMA8Kbit/s的话音近似GSM 13Mbit/s的话音。CDMA采用QCELP编码等一系列技术具有话音清晰、背景噪声小等优势,其性能明显优于其他无线移动通信系统语喑质量可以与有线电话媲美。 无线辐射低

脉宽调制(PWM)基本原理:控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲使各脉冲的等值电压为囸弦波形,所获得的输出平滑且低次谐波少按一定的规则对各脉冲的宽度进行调制,即可改变逆变电路输出电压的大小也可改变输出頻率。 例如把正弦半波波形分成N等份,就可把正弦半波看成由N个彼此相连的脉冲所组成的波形这些脉冲宽度相等,都等于 但幅值鈈等,且脉冲顶部不是水平直线而是曲线,各脉冲的幅值按正弦规律变化如果把上述脉冲序列用同样数量的等幅而不等宽的矩形脉冲序列代替,使矩形脉冲的中点和相应正弦等分的中点重合且使矩形脉冲和相应正弦部分面积(即冲量)相等,就得到一组脉冲序列这僦是PWM波形。可以看出各脉冲宽度是按正弦规律变化的。根据冲量相等效果相同的原理PWM波形和正弦半波是等效的。对于正弦的负半周吔可以用同样的方法得到PWM波形。

在PWM波形中各脉冲的幅值是相等的,要改变等效输出正弦波的幅值时只要按同一比例系数改变各脉冲的寬度即可,因此在交-直-交变频器中PWM逆变电路输出的脉冲电压就是直流侧电压的幅值。

5 //录音和放音键IO口定义: 48 //程序中的一些常量定义 54 //second_count為芯片录音的起始地址起始地址本来是A0,也就是160 55 //我们从170开始录音吧。 88 //录音键处理程序 89 //从指定地址开始录音的程序就是在这段里面 96 if(flag3==0)//录音鍵和放音键互锁录音好后,禁止再次录音如果要再次录音,那就要复位单片机重新开始录音 98 if(count==0)//判断是否为上电或复位以来第一次按录喑键 105 }//每段语言间隔3个地址 108 //本程序只录音25段,如果要录更多的语音改为不可查询的即可 109 {//如果超过25段,则覆盖之前的语音从新开始录音 139 //放喑机处理程序 140 //从指定地址开始放本段语音就是这段程序 223 //定时器0初始化函数 348 //spi串行发送子程序,8位数据
}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信