我正在测试WebRTC AGC,但我必须做错了,因为信号只是通过未经修改的.
以下是我创建和初始化AGC的方法:
agcConfig.compressionGaindB = 9;
agcConfig.limiterEnable = 1;
agcConfig.targetLevelDbfs = 9; /* 9dB below full scale */
WebRtcAgc_Create(&agc);
WebRtcAgc_Init(agc, minLevel, maxLevel, kAgcModeFixedDigital, 8000);
WebRtcAgc_set_config(agc, agcConfig);
Run Code Online (Sandbox Code Playgroud)
然后对于每个10ms样本块,我执行以下操作:
WebRtcAgc_Process(agc, micData, NULL, 80, micData, NULL, micLevelIn, &micLevelOut, 0, &saturationWarning);
Run Code Online (Sandbox Code Playgroud)
其中micLevelIn设置为0.
谁能告诉我我做错了什么?
我预计全量级正弦音将衰减到目标DBFS级别; 并且将放大低电平正弦音(即-30dBFS)以匹配目标DBFS电平.但那不是我所看到的.
我有最新版本的Android Studio(截至2016年9月21日).当我在Android Studio中创建一个全新的项目并尝试构建它时,我收到此构建错误:
错误:com.android.builder.internal.aapt.AaptException:无法处理文件H:.. pathTo ..\app\build\intermediates\explosion-aar\com.android.support\appcompat-v7\24.2.1 \水库\绘制-xhdpi-V4\abc_list_selector_disabled_holo_light.9.png
成
H:.. pathTo .. \程序\建立\中间体\水库\合并\调试\绘制-xhdpi-V4\abc_list_selector_disabled_holo_light.9.png
这是什么意思?我该如何解决?
构建日志:https: //jpst.it/NCnu
将音频发送到扬声器以便在Android上播放很容易,但是是否可以获得实际最终数字信号的副本?假设我有两个运行"MyApp"和"SomeOtherApp"的应用程序.我的应用程序向扬声器发送音频,但"SomeOtherApp"也是如此."SomeOtherApp"不是我的应用程序 - 它是第三方应用程序.是否有可能获得操作系统播放到扬声器的混合音频信号的副本?也就是说,音频信号是来自我的app的扬声器信号和来自"SomeOtherApp"的扬声器信号的混合.
总结一下:我正在寻找一种方法来连接低级音频路径(HAL音频流输出 - 混音后!)所以我可以获得"最终"扬声器信号的副本(实时).最理想的情况是,我还想加入低级麦克风路径,但现在这不是一个问题.
我最近升级到xcode 5.0.2
现在,我在构建Cocoa应用程序时收到此警告:
属性不可用在10.8之前的Mac OS X版本上使用最大布局宽度的当前宽度
我试图找到"最大布局宽度",但我无法做到.
我如何摆脱这个警告?
为了在我的Cocoa应用程序中启用复制和粘贴,我在菜单中添加了两个新菜单项(复制和粘贴),并将选择器从每个项目拖动到第一个响应者(复制和粘贴).但是,复制和粘贴菜单项下方会显示两个额外的项目:"开始听写"和"特殊字符".
我无法弄清楚它们出现的原因或我如何删除它们.
最理想的是,我甚至不希望复制和粘贴菜单项可见.我只是希望我的应用程序的用户能够将内容(即从电子邮件,文本文档等)粘贴到我的应用程序中的一个表单上的文本字段中.
我收到了这个C表达式的警告:
*p0++ = mult(*p0, psign[i1]);
Run Code Online (Sandbox Code Playgroud)
警告是:
unsequenced modification and access to 'p0' [-Wunsequenced]
Run Code Online (Sandbox Code Playgroud)
我认为表达式应该修改为:
*p0 = mult(*p0, psign[i1]);
p0++;
Run Code Online (Sandbox Code Playgroud)
行为(修改后)是否符合预期?我认为指针增量应该在p0指向的值更新后发生.
我的蓝牙耳机(Parrot B350-XT)有4个按钮:
我正在创建一个在三星的SM-T230NU上运行的Android应用程序(OS 4.4.2).
我希望我的应用程序能够在按下上述4个按钮中的任何一个时接收通知,包括按下按钮的类型(长按,短按).我的申请将在上下文中解释这些事件.我正在开发的应用程序是一个软电话,我想在按钮事件和软电话操作之间进行以下连接.这只是一个例子:
到目前为止,我已经查看了Android SDK,stackoverflow帖子和各种实现,但我还没弄清楚它应该如何完成.
我为Android开发了一个应用程序和一个本机库.本机库使用openSL ES进行音频处理.
在我的Android.mk文件中,我有以下声明:
LOCAL_LDLIBS := -lOpenSLES
Run Code Online (Sandbox Code Playgroud)
所以我猜这意味着应用程序将在设备上加载/执行应用程序时从设备的system/lib文件夹中动态链接openSLES库?
我面临的问题是设备上的库是错误的,我有3个更新的库,其中包含错误修复.如果可能,如何确保我的本机库使用我拥有的3个库:
Libwilhelm.so
libOpenMAXAL.so
libOpenSLES.so
Run Code Online (Sandbox Code Playgroud)
我只是更换
LOCAL_LDLIBS := -lOpenSLES
Run Code Online (Sandbox Code Playgroud)
同
LOCAL_SHARED_LIBRARIES := -lOpenSLES -lOpenMAXAL -lwilhelm
Run Code Online (Sandbox Code Playgroud) 我正在编译下面的代码,由于某种原因,我无法将-2147483648分配给8字节长且已签名的变量.
long long x = -2147483648;
Run Code Online (Sandbox Code Playgroud)
当我跨过这一行时,x的值是2147483648,MS Visual Studio中的'Watch'窗口显示x的类型是__int64.sizeof(x)也返回8.
根据limit.h,签署的long long的限制是:
#define LLONG_MAX 9223372036854775807i64 /* maximum signed long long int value */
#define LLONG_MIN (-9223372036854775807i64 - 1) /* minimum signed long long int value */
Run Code Online (Sandbox Code Playgroud)
和:
/* minimum signed 64 bit value */
#define _I64_MIN (-9223372036854775807i64 - 1)
/* maximum signed 64 bit value */
#define _I64_MAX 9223372036854775807i64
Run Code Online (Sandbox Code Playgroud)
我只是不明白!
有人可以对此有所了解吗?
我正在使用Xcode for OSX中的Objective-C Cocoa应用程序,该应用程序将在App Store外部发布.
应用程序中的一个菜单项是"检查更新".用户可以单击此项并检查是否有可用的更新.
如果有可用更新,则将下载更新.
我的问题是:更新应用程序的常用方法是什么?由于应用程序已打开,因此无法覆盖自身.那通常如何做呢?
您是否将应用分为发射器和应用本身?如果是这样,我想,当用户启动应用程序时,它实际上是启动的启动器.然后,启动程序检查是否已下载更新,并使用新的应用程序二进制文件替换旧的应用程序二进制文件.这是在OSX上完成的,还是有更聪明的方法?
"2"代表以下内容:
SLDataLocator_AndroidSimpleBufferQueue loc_bq =
{SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE, 2};
Run Code Online (Sandbox Code Playgroud)
从我读过的,它是缓冲区的数量.
为什么2?为什么不只是1?如果2更好,为什么不是10然后才能让它变得更好?
谢谢
我下载了X264源代码并安装了mingw.
步骤1:
在MINGW bash中执行此操作:
./configure --disable-cli --enable-shared --enable-win32thread - -extra-ldflags = -Wl, - output-def = libx264.def
然后'制作'
第2步:
将libx264-142.dll重命名为libx264.dll并打开VS2012命令提示符并执行以下操作:
LIB /DEF:libx264.def
它给了我libx264.lib和对象libx264.exp
第3步:
将lib文件包含在使用X264 API的VS2012项目中.
问题:
当我启动项目时,我收到以下错误消息:
"程序无法启动,因为您的计算机缺少libx264.dll"
题:
当我链接静态库时,为什么要查找dll?
我该如何解决这个问题?我想构建一个静态X264库,我可以将其链接到我的项目中.
编辑:
我只需将dll放在与项目可执行文件相同的目录中.
但是 - 我的问题仍然存在:如何构建静态 x264库?所以我不需要dll?
我正在努力实现一个 TFTP 客户端(UDP 套接字)。
目前,我必须关闭 Windows 8 机器上的整个防火墙,否则数据无法到达 TFTP 客户端。传出连接请求发生在端口 69 上,但来自 TFTP 服务器的第一个数据包在不同的随机端口上传回。所以我的问题是:如何确保 TFTP 客户端(作为应用程序)能够在防火墙打开的机器上接收数据包?
当我在 Visual Studio 2005 中以调试模式运行 TFTP 客户端时,除非我关闭防火墙,否则客户端也不会收到数据包。我该如何解决?
谢谢
更新(代码)
void main(void)
{
unsigned short OPCODE = htons((unsigned short)1);
char* fileName = "thisfile.cnf.xml";
WORD wVersionRequested;
WSADATA wsaData;
int err;
SOCKET sockfd;
int n;
char buf[256] = {0};
int L;
struct sockaddr_in servaddr;
char recvline[1000];
int rc;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
memcpy(buf, &OPCODE, 2);
sprintf_s(&buf[2], 254, "%s%c%s%c", fileName, …Run Code Online (Sandbox Code Playgroud)