文档章节

android webrtc使用opensl es

bill_shen
 bill_shen
发布于 09/26 18:05
字数 210
阅读 9
收藏 0

1. java层开启开关

peerConnectionParameters =
        new PeerConnectionClient.PeerConnectionParameters();

接口中的useOpensles参数设置为true

2. /system/etc/permissions/下新增android.hardware.audio.low_latency.xml文件,内容如下:

< ?xml version="1.0" encoding="utf-8"?>
 <permissions>
     <feature name="android.hardware.audio.low_latency" />
  </permissions>

ps:webrtc创建不同的音频播放方式源码代码如下:

audio_device_imp.cc文件  int32_t AudioDeviceModuleImpl::CreatePlatformSpecificObjects()接口

if (audioLayer == kPlatformDefaultAudio) {
    if (_audioManagerAndroid->IsLowLatencyPlayoutSupported() &&
        _audioManagerAndroid->IsLowLatencyRecordSupported()) {
      // Use OpenSL ES for both playout and recording.
      audioLayer = kAndroidOpenSLESAudio;
    } else if (_audioManagerAndroid->IsLowLatencyPlayoutSupported() &&
               !_audioManagerAndroid->IsLowLatencyRecordSupported()) {
      // Use OpenSL ES for output on devices that only supports the
      // low-latency output audio path.
      audioLayer = kAndroidJavaInputAndOpenSLESOutputAudio;
    } else {
      // Use Java-based audio in both directions when low-latency output is
      // not supported.
      audioLayer = kAndroidJavaAudio;
    }
  }

判断条件源码在audio_manager.cc

bool AudioManager::IsLowLatencyPlayoutSupported() const {
  RTC_DCHECK(thread_checker_.CalledOnValidThread());
  ALOGD("IsLowLatencyPlayoutSupported()");
  // Some devices are blacklisted for usage of OpenSL ES even if they report
  // that low-latency playout is supported. See b/21485703 for details.
  return j_audio_manager_->IsDeviceBlacklistedForOpenSLESUsage() ?
      false : low_latency_playout_;
}

© 著作权归作者所有

共有 人打赏支持
bill_shen
粉丝 1
博文 19
码字总数 4386
作品 0
龙岩
程序员
WebRTC基础实践 - 1. WebRTC简介

WebRTC 是一个开源的实时通信项目, 主要目标是对Web/原生App平台上的语音、视频、以及数据传输等实时通讯提供支持。 WebRTC 主要包括以下 JavaScript API(点击链接可查看相关demo)。 : 获取用...

铁锚
10/14
0
0
在Ubuntu12.10-32bit上构建、测试WebRTC之Android示例WebRTCDemo

参考资料: http://www.webrtc.org/reference/getting-started http://www.webrtc.org/reference/getting-started/prerequisite-sw http://code.google.com/p/webrtc/issues/detail?id=1435 ......

今幕明
2015/01/18
0
0
git 设置代理下载 webrtc代码

前言 很多同学想学习 webrtc,但发现下载 webrtc 代码并能成功编译它,成为了一只拦路虎。今天我们就来看看如何通过 VPN 下载webrtc代码。 购买 VPN 要想下载 webrtc 代码,我们必须要有 VP...

音视频直播技术专家
06/27
0
0
了不起的WebRTC:生态日趋完善,或将实时音视频技术白菜化

本文原文由声网WebRTC技术专家毛玉杰分享。 1、前言 有人说 2017 年是 WebRTC 的转折之年,2018 年将是 WebRTC 的爆发之年,这并非没有根据。就在去年(2017年),WebRTC 1.0 标准草案出炉(...

JackJiang2011
06/04
0
0
Google开源实时通信项目WebRTC

最近,Google正式开源了WebRTC实时通信项目,希望浏览器厂商能够将该技术内建在浏览器中,从而使Web应用开发人员能够通过HTML标签和JavaScript API就实现Web音频、视频通信功能。 WebRTC(W...

墙头草
2011/06/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

各种开源汇编、反汇编引擎的非专业比较

由于平时业余兴趣和工作需要,研究过并使用过时下流行的各种开源的x86/64汇编和反汇编引擎。如果要对汇编指令进行分析和操作,要么自己研究Intel指令集写一个,要么就用现成的开源引擎。自己...

simpower
28分钟前
3
0
(4)添加vue-router

(4)添加vue-router 1 安装vue-router cnpm install vue-router --save 2 页面准备 新建目录/src/views/common,此目录下面建立4个组件404.vue、home.vue、login.vue、theme.vue。每个文件...

neumeng
30分钟前
2
0
高可用性系统在大众点评的实践与经验

背景 所谓高可用性指的是系统如何保证比较高的服务可用率,在出现故障时如何应对,包括及时发现、故障转移、尽快从故障中恢复等等。本文主要以点评的交易系统的演进为主来描述如何做到高可用...

Skqing
38分钟前
3
0
Network protocols

The network stack does serveral seemingly-impossible things. It does reliable transmission over our unreliable networks, usually without any detactable hiccups. It adapts smooth......

nao
40分钟前
1
0
Android 生命周期方法

1,onCreate(); 2,onStart(); 3,onResume(); //打开页面,前三个方法自动执行 4,onPause(); 5,onStop(); //打开其他页面,前一个页面执行这俩方法 6,onRestart(); //onStart(),onResume //当关闭...

lanyu96
46分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部