小编msa*_*sam的帖子

跨平台声音API

我正在研究开发一个需要实时流式传输音频的应用程序.我更喜欢使用一些用C或C++编写的跨平台(windows/linux/BSD)开源库,即使使用相应的操作系统的Sound API编写它仍然是一个选项.

我已经阅读了一些关于各种声音库的内容,包括SFML,SDL和PortAudio.不可否认,我还没有对FreeBSD和Linux中的Sound进行过充分的研究(两者之间有多相似?)

主要要求是

  1. 从所选麦克风/麦克风获取音频以通过网络发送,
  2. 将数据发送到选择的输出设备,
  3. 处理声音(过滤,清理噪声,多路复用流等)但这可以在我拥有音频数据后完成,库本身不需要能够执行任何此操作.
  4. 具有相当低的延迟

我主要担心的是,这些提到的API似乎主要针对游戏(声音通常从磁盘加载,并且没有太多(如果有的话)录音,而不是通过网络流式传输,在录制和播放之间具有同等重要性.

有没有人有关于这些或其他声音API的任何指针/警告/建议,或者有关长远路径并在相应操作系统的API中实现这一点的优点/缺点?

注意:虽然这个:"要求我们推荐或找到书籍,工具,软件库,教程或其他场外资源的问题都是Stack Overflow的主题"当人们也认为"as他们倾向于吸引自以为是的答案和垃圾邮件"然后我不认为这个问题应该被关闭.寻找所描述的这样一个库的人将很难找到任何东西,这个问题的答案实际上总结了所有可用的选项.因此,这是"通常涵盖......程序员常用的软件工具"; 已接受答案的类别.

c c++ audio voip live-streaming

9
推荐指数
1
解决办法
3863
查看次数

不可调整大小的窗口边框和定位

如果我创建不可调整大小的JFrame,并启用Windows Aero setLocation似乎没有正确考虑窗口边框.

在下面的代码中,我希望第二帧位于第一帧的右侧,而不是边框​​重叠.如果禁用Aero,或者我删除了setResizable对此的调用,则按预期完成.

import java.awt.Rectangle;
import javax.swing.JFrame;
public class FrameBorders {
public static void main(String[] args) {
    JFrame frame1 = new JFrame("frame 1");
    JFrame frame2 = new JFrame("frame 2");

    frame1.setResizable(false);
    frame2.setResizable(false);

    frame1.setVisible(true);        
    Rectangle bounds = frame1.getBounds();      
    frame2.setLocation(bounds.x+bounds.width, bounds.y);
    frame2.setVisible(true);

}
}
Run Code Online (Sandbox Code Playgroud)

我做错了什么或这是一个错误?如何在没有重叠边框的情况下并排显示2个不可调整的对话框?

编辑:添加了截图(也将frame2更改为JDialog而不是JFrame)

Aero On: Aero On

Aero Off: Aero Off

Aero On但可调整大小: Aero On但可调整大小

java windows swing aero absolutelayout

7
推荐指数
2
解决办法
3943
查看次数

了解os bootloading - assembly

我正试图更深入地理解.因此,linux启动必须处理一个程序集文件.我知道mov, push, pop,但在这里我很遗憾:

.globl  __start
    .ent    __start
__start:
    br  $29,2f
2:  ldgp    $29,0($29)
    jsr $26,start_kernel
    call_pal PAL_halt
    .end __start

switch_to_osf_pal:
    subq    $30,128,$30
...
Run Code Online (Sandbox Code Playgroud)

如果我说那__start是一个标签,我是否正确?一旦它被另一个代码和平调用,它会被调用吗?我试图谷歌周围了解ldgp,或call_pal符号,但我什么都没发现.最后,我发现以switch_to_osf_pal这种方式调用的c文件switch_to_osf_pal(2, pcb_va, pcb_pa, VPTB);是这个函数用这个参数调用汇编函数吗?

对不起,如果有很多问题,但我没有找到任何明确的文档

linux assembly operating-system

5
推荐指数
1
解决办法
174
查看次数