Articles of audio

如何在没有直接链接的情况下stream式传输audio文件

我有一个坐在nginx web服务器上的rails web应用程序。 我在我的服务器上有一些audio文件,我希望人们能够听到它们,并能够从这一点上寻找audio文件的任何部分。 简单的权利? 我在我的html5audio元素的src中使用直接链接。 它运作良好。 该文件可以播放和寻找工作。 input安全性和可审计性。 我的audio文件是敏感的。 我只希望某些人能够听取他们的意见。 我也需要知道每次他们听他们。 突然,公共目录不起作用。 inputrails的send_file。 Send_file最初似乎正是我所需要的。 它允许轨道服务我的audio文件,我可以保持我的文件在一个受保护的目录,我可以检查当前用户的权限,我可以创build适当的审计跟踪。 除… 与send_file我不能寻求。 这是一个交易断路器。 一些stackoverflow问题地址获取send_file来处理HTTP范围/字节范围请求。 我审查的是: 什么是通过导轨服务mp4文件的正确方法… 导轨媒体文件stream通过发送文件接受字节范围请求… 经过更多的研究,我发现了以下博客文章: https : //blog.echoplex.us/2014/08/19/so-you-want-to-stream-videoaudio-with-rails/ tl; dr不要使用rails send_file来提供媒体服务。 不要试图让它像stackoverflow问题说你可以。 相反,使用nginx和X-Accel-Redirect,最后得到一个类似于你的请求pipe道 – > nginx-> rails-> nginx->你 我正在考虑采取他的方法,但不知道是否有更好的方法来做到这一点。 我有什么select? (另外,你可以假设我正在使用当前版本的rails和nginx)

AudioSystem.getMixerInfo()在Java / gentoo中没有任何内容

我想在机器人上开发语音识别程序。 机器人安装了gentoo chroot。 当我调用AudioSystem.getMixerInfo() ,它不返回任何内容。 JDK版本是jdk-6u35-linux-i586。 / dev /中有很多audio设备,如下所示: nao [0] /dev $ ls -l|grep audio crw-rw—- 1 root audio 14, 4 Oct 3 02:33 audio crw-rw—- 1 root audio 14, 3 Oct 3 02:33 dsp crw-rw—- 1 root audio 14, 0 Oct 3 02:33 mixer crw-rw—- 1 root audio 14, 1 Oct 3 02:33 […]

使用ALSA在只播放声卡上捕获播放

我的hw:1,0是只播放的外部USB卡。 录制应用程序无法捕获发送到hw:1,0的样本,如果它尝试打开hw:1,0进行捕获。 alsamixer没有为hw:1,0提供任何“[Capture]”选项 – 只有“[Playback]”选项卡上的一个音量控制。 是否有可能创build一些虚拟的“xxx”设备,它将接受来自应用程序的stream并通过2个stream(副本)发送出去 – 第一个到真正的“hw:1,0”(到我的耳机),第二个到另一个将提供捕获能力的虚拟设备“zzz”,将stream提供给可打开“zzz”以捕获的应用程序? 更新 我在内核中添加了ALSA Loopback设备,现在我有了loopback设备。 然后我发现工作.asoundrc(见下文),但是当我使用ffmpeg捕捉屏幕+声音时,声音比video前进了一些,很大的同步问题。 所以用这个.asoundrc(下面)我可以使用hw:0,0(loopback device,hw:0,0 – play,hw:0,1 – capture)捕获我发送给“default”的内容。 我也可以通过我的外部USB hw:2,0听到这些示例。 ffmpeg命令: ffmpeg -f alsa -i hw:0,1 -f x11grab -s 854×480 -r 30 -i :0.0 -vcodec libx264 -vb 4000k /tmp/screen_854x480.avi .asoundrc: pcm.!default { type plug slave.pcm "mdev" route_policy "duplicate" } pcm.mdev { type multi slaves.a.pcm "hw:Loopback,0,0" […]

在RHEL 6 x64中configurationnetworkingaudio系统时出错

我试图用两种方法在RHEL 6中设置NAS(networkingaudio系统): 首先,通过RPM安装, [root@localhost ~]# rpm -Uvh nas-1.9.2-1.el6.x86_64.rpm nas-libs-1.9.2-1.el6.x86_64.rpm 它被安装,但我无法find/etc/init.d/目录中的服务。 只有/etc/nas/nasd.conf文件被创build。 如果我运行命令 [root@localhost ~]# nasd Network Audio System Release 1.9.2 Network Audio System Release 1.9.2 Init: Output open(/dev/dsp) failed: No such file or directory Fatal server error: could not create audio connection block info 其次,通过configuration由NAS站点提供的最新的tar-ball nas-1.9.3.src.tar.gz 。 但问题是一样的。 请帮助我正确地安装,因为我想获得基于qt的应用程序的audio,qt使用NAS的audiofunction。

ALSA&Python – 捕获多个单声道audioinput

我正在使用python audio alsa库与我的M-Audio Delta 1010LT PCIaudio接口进行交互。 这个audio接口有8个模拟input。 我想分析一个特定的单声道input的信号。 卡被认可: cat /proc/asound/cards 0 [M1010LT ]: ICE1712 – M Audio Delta 1010LT M Audio Delta 1010LT at 0xa000, irq 18 之后,我用命令“amixer”列出了所有器件名称(在这里显示inputADC) … Simple mixer control 'ADC',0 Capabilities: volume volume-joined penum Playback channels: Mono Capture channels: Mono Limits: 0 – 164 Mono: 142 [87%] [7.50dB] Simple mixer control […]

编码WAV文件提前切断

在我之前的问题,我设法得到一个工作的.wav文件作为输出。 但是,当我把这个.wav文件放到我的编码器(用其他.wav文件进行testing并且工作正常)的时候,我的编码器在完成之前把错误传回给我。 这是我的输出: $ ./capture 2 Capture device is plughw:1,0 Finished writing to /tmp/filevXDDX6.wav Starting encode to /tmp/filevXDDX6.flac Wrote 3641 bytes, 4096/88200 samples, 2/22 frames Wrote 6132 bytes, 8192/88200 samples, 2/22 frames Wrote 8748 bytes, 12288/88200 samples, 3/22 frames Wrote 11253 bytes, 16384/88200 samples, 4/22 frames Wrote 13697 bytes, 20480/88200 samples, 5/22 frames Wrote 16222 […]

我如何使用alsa回放同步方法调用?

我试图编写一个程序,将灯同步到一个基本的WAV文件播放。 我已经在所有的alsa文档中挣扎,ffplay.c的源代码和在互联网上search,但很难弄清楚如何做一个常见而简单的任务。 基本上我想做两件事,第一件是在audio播放时读取按键事件,并将偏移量存储在文件中。 第二个是取出这些队列文件,稍后加载它们,这次是在一个不同的audio设备,如树莓派。 我在如何首先考虑偏移位置的初始捕捉中的延迟以及如何在完全不同的硬件设备上回放时如何处理该延迟而挣扎。 我知道ffmpeg套件使用了snd_pcm_delay()来处理这个问题,但即使是基本的技巧,我也很苦恼。 这不是一个复杂的播放机制,只是一个循环中的阻塞写入。 我会发布一些代码,但目前我没有和我在一起,这只是一个混乱的当前黑客无法正常工作。

SDL_Mixer不在部分代码上工作

我只是一个奇怪的问题。 我正在把声音放在我的游戏中。 这是一个有两个阶段的游戏。 RPG之一和战斗之一。 在RPG中,你可以在怪物上行走时发动战斗。 在我的代码中,我使用3次SDL_mixer来播放音乐(在菜单中,在RPG和战斗中)。 它在前两种情况下工作,但是当我发起一场战斗时,没有音乐。 音乐被加载,Mix_playingMusic返回true,但是当发起战斗时我听不到任何音乐。 我使用相同的音乐比在RPG和菜单。 有关SDL_Mixer的代码在任何地方都是一样的。 战斗的一部分代码: { SDL_Event events; Mix_Music *fightMusic; enum actual_player actual = PLAYER; int go = 1; int action; int monsterId = 0; Uint32 t = SDL_GetTicks(), nt; fightMusic = Mix_LoadMUS("data/Music/rpg.mp3"); // we loading the music if(fightMusic == NULL){ printf("error loading fightMusic\n"); } Mix_VolumeMusic(MIX_MAX_VOLUME); if(Mix_PlayMusic(fightMusic, -1)<0){ printf("error […]

如何用ALSA播放短音

我试图在一个小的C程序中通过ALSA生成可变长度的短音。 我尝试过的几个例子在播放一秒钟的声音时工作得很好,但是比这更短的东西根本不会产生任何声音。 我用这样的正弦波填充缓冲区: #define BUFFER_LEN 44100 int freq = 700; //audio frequency int fs = 44100; //sampling frequency float buffer [BUFFER_LEN]; for (k=0; k<BUFFER_LEN; k++) { buffer[k] = (sin(2*M_PI*freq/fs*k)); } 设置pcm设备参数: if ((err = snd_pcm_set_params(handle, SND_PCM_FORMAT_FLOAT, SND_PCM_ACCESS_RW_INTERLEAVED, 1, 44100, 1, 500000)) < 0) { printf("Playback open error: %s\n", snd_strerror(err)); exit(EXIT_FAILURE); } 回放: frames = snd_pcm_writei(handle, […]

我如何将控件映射到它的设备?

amixer -c 0对照: … numid=22,iface=MIXER,name='Capture Switch' numid=24,iface=MIXER,name='Capture Switch',index=1 numid=21,iface=MIXER,name='Capture Volume' numid=23,iface=MIXER,name='Capture Volume',index=1 … arecord -l: card 0: PCH [HDA Intel PCH], device 0: ALC662 rev3 Analog [ALC662 rev3 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 2: ALC662 rev3 Alt Analog [ALC662 rev3 Alt Analog] Subdevices: 1/1 Subdevice #0: […]