- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的应用程序中有一个 AudioTrack,它设置为 Stream 模式。我想编写通过无线连接接收到的音频。 AudioTrack 声明如下:
mPlayer = new AudioTrack(STREAM_TYPE,
FREQUENCY,
CHANNEL_CONFIG_OUT,
AUDIO_ENCODING,
PLAYER_CAPACITY,
PLAY_MODE);
参数定义如下:
private static final int FREQUENCY = 8000,
CHANNEL_CONFIG_OUT = AudioFormat.CHANNEL_OUT_MONO,
AUDIO_ENCODING = AudioFormat.ENCODING_PCM_16BIT,
PLAYER_CAPACITY = 2048,
STREAM_TYPE = AudioManager.STREAM_MUSIC,
PLAY_MODE = AudioTrack.MODE_STREAM;
但是,当我用 write() 向 AudioTrack 写入数据时,它会播放断断续续的......调用
byte[] audio = packet.getData();
mPlayer.write(audio, 0, audio.length);
每当通过网络连接接收到数据包时都会生成。有人知道为什么它听起来很不稳定吗?也许它与WiFi连接本身有关?我不这么认为,因为当我通过 UDP 从 Android 手机向另一个来源发送数据时,声音听起来并不可怕。然后声音听起来完整而且一点也不起伏...那么有人知道为什么会这样吗?
最佳答案
您知道每秒接收多少字节、数据包之间的平均时间比较以及数据包之间的最长时间吗?如果不是,你可以添加代码来计算它吗?
您需要平均 8000 个样本/秒 * 2 字节/样本 = 16,000 字节/秒才能保持流充满。
传入数据包之间的间隔超过 2048 字节/(16000 字节/秒)= 128 毫秒 将导致您的流干涸并且音频断断续续。
防止它的一种方法是增加 缓冲区大小 (PLAYER_CAPACITY)。较大的缓冲区将更能够处理传入数据包大小和速率的变化。额外稳定性的代价是在等待缓冲区最初填满时开始播放的延迟更大。
关于android - 音轨 : Playing sound coming in over WiFi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5297923/
我想在其他“已批准”域上放一个指向我网站的链接。当他们单击链接时,它会转到一个页面,该页面会检查引荐来源网址 ($_SERVER['HTTP_REFERRER']) 以确保它们来自已获准拥有我的链接的
我用这一行创建一个 defaultdict 并使用列表作为值对其进行初始化。 page_by_due_date = defaultdict(list) due_pages_list = [] for
我有一个使用大量内存的 Java 程序。我使用 jmap -histo:live 来追踪正在使用所有内存的对象。只有几种类型占用了大部分内存,其中超过 1M,但我无法判断引用的来源来自。 有什么方法可
我正在尝试使用 Android 电话管理器结束调用(新的调用筛选 API 不适合我)。我在网上找到了很多例子,都与我下面的代码非常相似。它编译得很好,但我在运行时遇到了 ClassCastExcept
我有一个用 Visual Studio 编写的小型 C++ dll(当然)。在解决方案代码中,我有一个仅包含版本信息的资源文件。 奇怪的是,当我将已编译的 dll 分片到 Visual Studio
所以我明白了什么是装箱和拆箱。它什么时候出现在现实世界的代码中,或者在什么例子中它是一个问题?我无法想象做这样的事情: int i = 123; object o = i; //
我们的 winforms 应用程序与 MS Word 交互,我们在生成文档并希望在应用程序前面的 Word 中显示它时运行此代码: [setup w as a Word interop object]
我最近已从Mac开发环境切换到Windows开发环境。我广泛用于Chrles代理来捕获网络流量,请求和响应详细信息。现在,我已经在Windows 8中安装了Charles Proxy 3.7版。但是,
假设我有一个带有电子邮件表单元素的表单;例如,当我在此字段中输入 1 个字母并按“确定”时,我会在工具提示中收到一条用我的语言(法语)显示的消息:“Veuillez saisir une adress
解释问题: 我现在已经尝试让 firebase_messaging 工作近一周。 我成功设置了一个旧版 Xcode APNS 应用程序,该应用程序在生成所有新证书等后工作。 但是使用 firebase
我想知道域实现的常见做法是什么。首先设计需要持久性或数据库模式的业务对象,然后从实体关系图(然后是 ORM poco*)生成它? 我要开始一个解决方案,但我想知道哪个是最优选的“模式”。 (*由 NH
我看到一个用 Node.js 构建的应用程序,但我不明白 describe 和 it 这两个词如何可用? 在浏览器控制台中,它 是一个函数,describe 抛出一个ReferenceError。 我
我看到一个用 Node.js 构建的应用程序,但我不明白 describe 和 it 这两个词如何可用? 在浏览器控制台中,它 是一个函数,describe 抛出一个ReferenceError。 我
所以我正在尝试学习 django 并遵循本教程:https://docs.djangoproject.com/en/1.10/intro/tutorial01/ 按照教程制作民意调查应用程序后,当我回
故事 我已经在 OpenGL 中编码大约一年了(在相同的硬件上),我最近才得到像上图中那样的工件。它们在短时间内(几分钟)连续运行我的程序后出现,并出现在任何地方:从写字板(见图片)到我的桌面和任务栏
我对下面名为test(第 3 行)的函数的使用感到好奇: var pattern = /[1-9][1-9]{5}/; var str = 'this is 248760!'; alert(patte
当我正在使用的 CodeIgniter 应用程序尝试特定的 UPDATE 操作时,我收到一个非常奇怪的数据库错误。 Active Record 调用是: $this->db->update('eval
我的目标是显示一张图片并将其慢慢带到前台(并在主要时间内延长)。我希望当我在 div/img 上检测到事件 onmouseover 时可以完成此操作。 目前,我使用隐藏属性,但我不喜欢它,因为它就像:
我有一个页面,我通过查询字符串发送了一个参数。 如果我使用 Request.QueryString["Format"] 检索它,我会遇到类型 'CD\DVD' 的问题。它作为“CD\\DVD”返回。重
我在 ListView 中遇到了一个奇怪的行为,只有一个 ListView,我的应用程序中有很多 ListView,但只有在这种情况下才会发生。 我会试着解释一下,当我滚动到底部时,好吧,滚动会停止。
我是一名优秀的程序员,十分优秀!