文档章节

android webrtc使用opensl es

bill_shen
 bill_shen
发布于 09/26 18:05
字数 210
阅读 23
收藏 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
博文 32
码字总数 7534
作品 0
龙岩
程序员
私信 提问
用Rose构建需要视频聊天的跨平台app

  实现视频聊天存在两个技术难点,一是网络传输,二是视音频编解码。这些技术问题不是靠几个人就能解决的,为此开发者一般都选择某个SDK,然后以它为基础写出app。作为众多SDK中一个,Goo...

rose-sdk
2016/12/21
462
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
webrtc初级教程-仝利-专题视频课程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/rootusers/article/details/83551794 webrtc初级教程—9204人已学习 课程介绍 从基础的怎么从网上下载webrtc教...

BIGBurning
2016/02/25
0
0
Chrome 29 新功能一览

Chrome 28正式版刚刚发布一周,Google就面向Windows、Mac、Linux和Android平台推出了Chrome 29 Beta。该版本最大的变化就是在桌面版Chrome中调整了Omnibox智能栏的功能,并为Android平台带来...

oschina
2013/07/17
8.6K
58

没有更多内容

加载失败,请刷新页面

加载更多

js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
12
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
16
0
"errcode": 41001, "errmsg": "access_token missing hint: [w.ILza05728877!]"

Postman获取微信小程序码的时候报错, errcode: 41001, errmsg: access_token missing hint 查看小程序开发api指南,原来access_token是直接当作parameter的(写在url之后),scene参数一定要...

两广总督bogang
昨天
20
0
MYSQL索引

索引的作用 索引类似书籍目录,查找数据,先查找目录,定位页码 性能影响 索引能大大减少查询数据时需要扫描的数据量,提高查询速度, 避免排序和使用临时表 将随机I/O变顺序I/O 降低写速度,占用磁...

关元
昨天
11
0
撬动世界的支点——《引爆点》读书笔记2900字优秀范文

撬动世界的支点——《引爆点》读书笔记2900字优秀范文: 作者:挽弓如月。因为加入火种协会的读书活动,最近我连续阅读了两本论述流行的大作,格拉德威尔的《引爆点》和乔纳伯杰的《疯传》。...

原创小博客
昨天
32
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部