立即学习:https://edu.csdn.net/course/play/6842/172189?utm_source=blogtoedu

# 记录一下今天踩到的两个坑:



1. Android 10 系统上,会出现下面这个问题:
 

E/AudioEffect: set(): AudioFlinger could not create effect c2e5d5f0-94bd-4763-9cac-4e234d06839e / ec7178ec-e5e1-4432-a3f4-4657e6795210, status: -1E/libOpenSLES: Effect initCheck() returned -19E/libOpenSLES: EnvironmentalReverb effect initialization failed

首先排查一下权限是否正确获取到了,如果权限配置正确,这个问题可以忽略掉,不影响最后的播放。

2. 无法播放出声音

 

因为在播放的时候,每次 Enque 进去的是获取到的 size 的大小,代码如下:

int size = getPcmData(&mBuffer);if (nullptr != mBuffer) {        result = (*mDataQueue)->Enqueue(mDataQueue, mBuffer, size);    }

发现size的值始终为1,排查后发现是执行

`fread` 时,将 count 和 size 参数写反了,写成下面这样就可以了:
 

size = fread(mOutBuffer, 1,  44100 * 2 * 2, mInput);

 

也很奇怪为什么写反了就读不到那么多数据,不应该是 count * size 的吗?写反了竟然不对。

 

算是踩到的两个坑,希望能帮助到遇到相同问题的同学

更多相关文章

  1. Android时间获取之——Date、String、Long三种日期类型之间的相
  2. Android获取本机蓝牙地址
  3. Android(安卓)设备管理器和有权查看使用情况的应用详解
  4. Android内部存储和外部存储的获取方法
  5. android 获取sim卡运营商信息
  6. Android(安卓)屏幕截图
  7. android调用shell命令及权限问题
  8. FAQ00366]如何使Android应用程序获取系统权限
  9. Android中获取网页表单中的数据实现思路及代码

随机推荐

  1. Android(安卓)中常用的五种布局
  2. manifest中的 android:name
  3. android 图片双缓存,开源框架 universali
  4. 如何检查后台服务(Android的Service类)是否
  5. Android(安卓)webkit 事件传递流程
  6. Android游戏引擎Rokon宣布停止更新
  7. Android使用WebView和JS互相调用
  8. Android(安卓)Broadcast receiver 编程
  9. Android监测手指上下左右滑动屏幕
  10. Android中如何获得一些系统设置和环境变