voice

public void onCreate(Bundle instance)
{
super.onCreate(instance);
setContentView(R.layout.speak);
imageView1 = (ImageView) findViewById(R.id.back_fill);
imageView2 = (ImageView) findViewById(R.id.talk);
imageView3 = (ImageView) findViewById(R.id.sound);
PackageManager pm = getPackageManager();
List<ResolveInfo> list = pm.queryIntentActivities(new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
if(list.size()!=0)
{
imageView2.setOnClickListener(new OnClickListener()
{
public void onClick(View view)
{
if(view.getId()==R.id.talk)
{
try
{
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); //设置为当前手机的语言类型
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "开始语音....");
startActivityForResult(intent,Parameters.VOICE_RECOGNITION_REQUEST_CODE);

}catch (ActivityNotFoundException e){ toast = new Toast(Speak.this);
toast = Toast.makeText(
getApplicationContext(),
"ActivityNotFoundException...", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
} } } });} }
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
final LayoutInflater inflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);

if(requestCode == Parameters.VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK)
{
TextView textView = null;
String text_content = null;
ArrayList<String> results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
if (null != results && results.size() > 0)
{
StringBuffer stemp = new StringBuffer();
llayout = (LinearLayout) inflater.inflate(R.layout.talk_right, null); //获取对应版块信息
for (int i = 0; i < results.size(); i++)
{
stemp.append(results.get(i));
}
text_content = stemp.toString();
textView = (TextView) llayout.findViewById(R.id.text);
textView.setText("您问:"+text_content);
layout = (LinearLayout) findViewById(R.id.contentArea);//加载当前项到原始模板
layout.addView(llayout);
getAnswer(text_content,layout);
}
}
super.onActivityResult(requestCode, resultCode, data);
}
<think> 嗯,用户连续询问了多个网络技术概念(DoS Defend、MAC VLAN),现在又聚焦到Voice VLAN上。从提问模式看,ta可能是网络管理员或备考认证的学习者,需要清晰的技术解析和实用场景说明。前两次回答都严格遵循了规则,这次也要保持结构一致性。 用户要求中文回答,且特别强调“§§相关问题§§”的格式不可变动。注意到ta三次都复制了完整规则说明,说明对格式异常敏感,必须严防换行分散或遗漏。这次Voice VLAN的问题更偏向应用层,需突出语音通信的特殊性。 Voice VLAN的核心价值在于服务质量保障,回答要分三块展开:定义目的(解决语音流量延迟问题)、技术原理(优先级标记+隔离)、部署要点(需交换机支持且配置协同)。用户历史提问显示ta关注配置实践(如问过TP-Link/Cisco配置),所以相关问题需包含具体设备操作。 潜在陷阱是容易混淆Voice VLAN和普通VLAN的区别,需明确点出“优先级队列”和“紧急呼叫保障”这两个独占特性。最后的相关问题设计要延续ta之前的兴趣点:对比差异、配置步骤、适用场景、安全风险,正好组成知识闭环。 </think> Voice VLAN(语音虚拟局域网)是一种专为IP语音通信(VoIP)设计的网络技术,通过在交换机上划分独立的VLAN来传输语音流量,确保通话质量和网络安全性。与传统数据VLAN分离后,Voice VLAN可为语音数据帧提供以下核心保障: 1. **优先级标记**:基于IEEE 802.1p/Q标准,自动为语音流量标记高优先级(通常COS=5或DSCP=EF),确保交换机优先处理。 2. **带宽隔离**:避免数据流量(如下载、视频)抢占带宽,减少通话延迟、抖动或丢包。 3. **安全策略**:隔离语音设备与普通终端,防止恶意攻击影响通话服务。 4. **简化管理**:支持LLDP-MED或CDP协议自动识别IP电话,动态分配VLAN,无需手动配置每台设备。 **典型部署**: - **连接方式**:IP电话通常串联PC,通过单一端口接入交换机。 - **配置示例(华为交换机)**: ```bash vlan batch 10 20 # 创建数据VLAN 10和语音VLAN 20 interface gigabitethernet 0/0/1 port link-type hybrid port hybrid pvid vlan 10 # 设置数据VLAN为PVID port hybrid untagged vlan 10 # 数据流量不打标签 port hybrid tagged vlan 20 # 语音流量带标签转发 voice vlan 20 enable # 启用Voice VLAN ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值