jjzjj

python - 我怎样才能重复播放一个声音样本,让下一个循环与前一个循环重叠

不确定这是否是一个骗局,但到目前为止我找到的帖子并没有解决我的问题。前一段时间,我写了一个(音乐)metronomeforUbuntu.节拍器是用python3/Gtk写的为了重复播放节拍器滴答声(录制的声音样本),我使用subprocess.Popen()播放声音,使用ogg123作为cli工具:subprocess.Popen(["ogg123",soundfile])这很好用,我可以轻松达到每分钟240次。在Windows上我决定在Windows上重写项目(python3/tkinter/ttk)。然而,我很难播放声音,以更高的速度重复节拍样本。下一个节拍根本不会开始,而前一个节

c++ - 在 Windows 中读取/写入各种音频文件元数据

我正在尝试用C++修改一些音频文件的元数据,我遇到了[我认为]使用WindowsMediaFoundation的可能方法。所以我尝试整理一个简单的解决方案:#include#include#include#include#pragmacomment(lib,"Mf.lib")#pragmacomment(lib,"Mfplat.lib")intmain(){HRESULThr;CComPtrsource_resolver(nullptr);if(FAILED(hr=MFCreateSourceResolver(&source_resolver))){//Handleerrors...}

windows - 使用 FFMPEG 捕获 DirectShow AJA 音频

我有一blockAJA板,上面连接了一条SDI输入电缆。输入信号嵌入了视频和音频。视频可通过“Vid”引脚访问,音频可通过“Aud1-2”引脚访问。运行良好的DirectShow过滤图:“无直接显示音频设备”:我无法让FFMPEG正确映射音频部分。这是我尝试录制音频但没有成功的方法:ffmpeg-y-rtbufsize2048M-fdshow-iaudio="AJAS-CaptureKonaLHi-0"-acodecpcm_s24le-ar48000output.wavffmpeg-y-rtbufsize2048M-fdshow-audio_pin_name"Aud1-2"-iaudi

windows - 在 Qt 中一次播放多个声音

我正在尝试使用Qt播放背景音乐和音效。但是,我一次只能播放一种声音。例如:QSound::play("Music.wav");QSound::play("Effect.wav");当此代码运行时(在Windows上),您可以听到Music.wav刚刚开始播放,但随后停止并播放Effect.wav。有没有办法让这两种声音同时播放? 最佳答案 您正在使用静态方法。为每个对象实例化一个QSound对象:QSoundmusic("Music.wav");QSoundeffect("Effect.wav");music.play();effe

windows - 计算机上所有音频的实时均衡器

是否可以从计算机捕获所有声音并在到达扬声器之前通过均衡器?如何在其上编程带通滤波器?编辑:我正在尝试在Windows上实现这一点(使用Python?呵呵),但如果有一种通用的跨平台方法那就太好了。 最佳答案 在具有实时抢占内核的GNU/Linux平台上,您拥有JACK音频连接套件。简而言之,JACK允许您连接支持JACK的音频程序,这样您就可以从计算机中捕获所有声音。然后您可以将捕获的声音传递到另一个托管您的均衡器插件的JACK音频程序。至少在Linux中,均衡器插件要么是LADSPA插件,要么是LADSPA的后继插件标准LV2。如

windows - 您可以在 Windows wave 音频输入中重复使用缓冲区吗?

我正在使用Windows多媒体API来记录和处理波形音频(waveInOpen和friend)。我想以循环方式使用少量缓冲区。我知道你应该在向设备添加缓冲区之前使用waveInPrepareHeader,并且你应该在wave设备有“将缓冲区返回给应用程序”,然后再释放它。我的问题是,我是否必须取消准备并重新准备才能重新使用缓冲区?或者我可以将以前使用过的缓冲区添加回设备吗?此外,我在哪个线程上执行此操作重要吗?我正在使用回调函数,它似乎是在属于音频系统的工作线程上调用的。我可以在回调期间在该线程上调用waveInUnprepareHeader、waveInPrepareHeader和w

java - 录制发送到扬声器的声音

我正在尝试制作一个程序,让我能够捕捉通过扬声器听到的每一个声音。我不知道我该怎么做...我想使用套接字将它发送到另一台PC(我该怎么做?)。我想在Windows上用Java或C++(我绝对更喜欢Java)编写它。编辑简而言之,我想使用Java发送和接收音频输入请帮忙,克里斯 最佳答案 对于Windows7,您可以使用WASAPI执行此操作(参见myanswertoasimilarquestionhere)。为了使用WASAPI,我建议使用C++或一些基于.net的语言(C#、vb.net等)对于其他版本的Windows,您将需要一个

windows - C++/W32 - 录制声音、Direct Show 或 WaveInOpen?

想到WinXP、Vista、Win7++该选什么:使用DirectShow/Direct...录制音频?使用经典的WaveInOpen(我在某处看到有人说这将在W7/W8中过时-可能吗?)附言。我需要回调功能,以将缓冲区传递给编码器。谢谢! 最佳答案 WaveIn易于使用,网上有大量示例代码,它会以您需要的方式为您提供回调。DirectSound使用循环缓冲区,设置起来可能有点麻烦,很可能您需要处理循环缓冲区而不是“只是填充缓冲区”。然而,DirectSound可以让您更严格地控​​制音频,即延迟更好一些。IMO,Microsoft

c++ - Windows 上的 WASAPI 捕获缓冲区大小

我使用WASAPI在Windows7上以共享模式捕获音频缓冲区。我使用的扬声器只能有48kHz、96kHz、192kHz或44.1kHz采样率。我的声卡是Realtek高清声卡。我需要知道如果我在另一个操作系统(如WindowsVista或Windows8)上执行我的程序,WASAPI的行为是否会有所不同。此外,我需要知道getBuffer是否会为使用不同硬件(不同声卡)的捕获缓冲区检索相同大小。我自己无法测试,在网上也找不到太多细节。但是我的程序必须在具有不同版本的Windows和不同硬件的不同计算机上运行。如果捕获的缓冲区大小不同,我的程序将无法在另一台计算机上正常运行。如果有人知

windows - Gstreamer 无法通过 rtspsrc 播放音频

我无法从rtsp服务器播放音频,我的视频播放没有问题,但是当我尝试播放音频时出现了一些错误,以下是用于播放视频的命令:C:\gstreamer\1.0\x86_64\bin>gst-launch-1.0rtspsrclocation=rtsp://192.168.2.116/axis-media/media.amplatency=0!decodebin!autovideosink但是,当我将autovideosink更改为autoaudiosink时,如下所示:C:\gstreamer\1.0\x86_64\bin>gst-launch-1.0rtspsrclocation=rtsp: