- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在使用 Flutter 构建一个应用程序,它允许我录制音频然后稍后播放。我正在使用包 audio_recorder 0.4.0
来录制音频,并使用包 stereo 1.0.0
来播放音频。
当我使用 iOS 模拟器录制时,一切正常。但是当我在物理设备(iPhone 6 Plus)上运行时,我总是在录制 session 结束时得到一个 28 字节的文件——基本上只是 m4a 文件的一个标题。
我已将此归因于两个库之间的某种干扰。如果我使用 audio_recorder 0.4.0
中包含的示例应用程序,我可以在物理设备上很好地录音。但我所要做的就是将 stereo: 1.0.0
行添加到同一示例项目的 pubspec.yml 中的依赖项中,然后我突然开始在物理设备上获取 28 字节的文件录制 session 而不是正常大小的 m4a 文件。
我有一个两部分的问题:
stereo
库会造成什么样的干扰,导致 audio_recorder
库出现这种故障?我怀疑是信道干扰,但我试图隔离它并没有产生任何结果。
我怎样才能找到造成这种情况的原因?
我检查了两个 session 的控制台输出。当它失败时,我在尝试开始录制后立即在控制台输出中看到几 (8) 行:
mediaserverd 1111: AudioConverterNew returned -50
其他人建议当没有可用的麦克风时会发生此错误。
我还看到输出之间存在这种可疑的差异。录音中断时:
default 11:36:57.098825 -0700 mediaserverd 4414: { "action":"set_play_state", "session":{"ID":"0x3315820","PID":14591,"name":"Runner"}, "details":"entry" }
default 11:36:57.100484 -0700 mediaserverd -CMSessionMgr- cmsSetIsPlaying: CMSession: 'sid:0x3315820, Runner(14591), 'prim'' with [MediaPlayback/Default] [NonMixable] [System Audio] starting playing.
default 11:36:57.104699 -0700 mediaserverd CAReportingClient.mm:328:-[CAReportingClient sendMessage:category:type:reporters:]: message {
Volume = "0.75";
VolumeCategory = "Audio/Video";
VolumeOperationProcess = "com.monkela.audioRecordSample";
VolumeOperationTime = 576708;
VolumePlayingState = 1;
}: (
857014545
)
default 11:36:57.105879 -0700 mediaserverd -CMVAEndptMgr- vaemSetDeviceVolume: CMSession: Setting cmsvolume = 0.750 for device ID: VirtualAudioDevice_Default
default 11:36:57.107295 -0700 mediaserverd VirtualAudio_Device.cpp:2046:SetPropertyData: [volm/outp/0] on device [ type: vdef; id: 354; addr: 0x1014e1ba0; hidden: 0; VA strms: { o/883/0x106fc5980 }; agg dev: [ id: 872; addr: 0x106f1a460; uid: "VAD [vdef] AggDev 52"; virt strms: { }; phys devs: { [ id: 292; addr: 0x104b0fdb0; uid: "Speaker"; streams: { i/294/0x104b11cd0, o/293/0x104b12790 } ] } ] ]: 0.750000.
default 11:36:57.108123 -0700 mediaserverd OutputVolumeControl_HAL_Common.cpp:662:CommitVolume: Setting Volume = -14.500000 dB, Final HW Volume = 0.000000 dB, Final SW Volume = -14.500000 dB, External Volume Handler: No
default 11:36:57.109008 -0700 mediaserverd OutputVolumeControl_HAL_Common.cpp:663:CommitVolume: PhysicalDevice UID = "Speaker"
default 11:36:57.109721 -0700 mediaserverd OutputVolumeControl_HAL_Common.cpp:664:CommitVolume: Scope = 1869968496 ("outp")
default 11:36:57.110704 -0700 mediaserverd OutputVolumeControl_HAL_Common.cpp:665:CommitVolume: Element = 0 ("0")
default 11:36:57.112062 -0700 mediaserverd OutputVolumeControl_HAL_Common.cpp:698:CommitVolume: SW Volume: 0.750000 scalar
default 11:36:57.114393 -0700 mediaserverd VirtualAudio_Device.cpp:2066:SetPropertyData: Client request to set nominal sample rate to 44100.000000 on VAD 354.
default 11:36:57.116038 -0700 assertiond [Runner:14591] Attempting to acquire assertion for Runner:14591: <BKProcessAssertion: 0x101349110; "CMSession.14591."com.monkela.audioRecordSample"."MediaPlayback".isPlayingProcessAssertion" (audio:inf); id:…C74721DE1F95>
default 11:36:57.116572 -0700 assertiond [Runner:14591] Add assertion: <BKProcessAssertion: 0x101349110; id: 13077-914DDDE2-35CE-4420-85ED-C74721DE1F95; name: CMSession.14591."com.monkela.audioRecordSample"."MediaPlayback".isPlayingProcessAssertion; state: active; reason: audio; duration: infs> {
owner = <BSProcessHandle: 0x101009be0; mediaserverd:13077; valid: YES>;
flags = preventSuspend, preventThrottleDownCPU, preventIdleSleep, preventSuspendOnSleep;
}
录音时:
default 11:39:19.865022 -0700 mediaserverd 2863: { "action":"activate", "session":{"ID":"0x3315826","PID":14609,"name":"Runner"}, "details":"entry" }
default 11:39:19.880637 -0700 mediaserverd CAReportingClient.mm:328:-[CAReportingClient sendMessage:category:type:reporters:]: message {
"active devices" = "[ { vdef, [ ], [ pspk ( 0 ) ] }, { vspd, [ pmbi ( 0 ) ], [ ] }, { vcal, [ pdln ( 0 ) ], [ puln ( 0 ) ] } ]";
category = csav;
"going_active" = 1;
mode = imdf;
"staying_active" = 0;
}: (
857014546
)
录制中断时的输出表明我尝试开始录制实际上开始播放某些东西(即调用错误的库)。
最佳答案
我对此进行了追踪,并弄清楚了如何通过修改 stereo
包使这些库协同工作。结果是 stereo
包在 application didFinishLaunchingWithOptions
中激活了播放 Audio Session 。基本上是这些行:
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback error:&error];
[session setActive:YES error:&error];
我 fork 了 stereo
包并更改了代码以仅在实际需要时激活播放 session 。神奇的是,我的记录功能开始工作了。
我不确定它为什么能在模拟器中运行。模拟器必须能够以某种方式同时进行回放和录制 session 。
更新:stereo
包的作者接受了我的 pull request,因此只要您拥有该包的 1.0.1 版本,就应该能够避免此干扰问题。
关于flutter - 如何追踪 flutter 库 audo_recorder 和 stereo 之间的干扰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50687163/
我想对我现有的 AR 应用做一些修改,我想 Split View并在里面添加 2 个 ARSCNView 这样用户就可以使用 VR Card Box 并获得不同的体验但是 Xcode 总是返回给我:
我想对我现有的 AR 应用做一些修改,我想 Split View并在里面添加 2 个 ARSCNView 这样用户就可以使用 VR Card Box 并获得不同的体验但是 Xcode 总是返回给我:
使用 Matlab 立体相机校准器时的默认坐标系是使 Z 远离相机增加(参见本页底部图像:http://www.mathworks.com/help/vision/gs/coordinate-syst
尝试在 OpenGL 上显示两个图像时遇到问题(使用 PFD_STEREO 启用立体)。当我尝试同时显示 2 张图像时,只有一张(最后一张)图像显示而另一张图像仅显示黑色(图像未显示)。 代码如下:
还是完全依赖于 Bumblebee(或任何其他 Point Grey Imaging 传感器)?我正在尝试链接 bumblebee 2 stereo rig 附带的立体处理 API 来处理一些离线图像
我目前正在开发一个适用于通过麦克风捕获的现场音乐的应用程序。但是,这使得测试变得非常困难,我在共享办公室工作等等。我目前正在通过从应用程序中加载外部 MP3 文件来对其进行测试,但这远非最佳。 我想做
我想知道是否可以将 Java 应用程序(或任何应用程序)转换为立体 3D (例如,使用红蓝眼镜)。 是否有任何工具或框架可以执行此操作? 最佳答案 解决此问题的最常见方法是使用 JOGL,它是 Ope
我想做类似于 this question 的事情,但用于 stereoCalibrate() 而不是 calibrateCamera()。也就是说,计算立体相机校准的重投影误差。 我的简化示例如下所示
我使用 opencv 为 2 个摄像头(左侧的低分辨率摄像头和右侧的高分辨率摄像头)成功校准了内部参数和外部参数。我从 2 组图像(棋盘图案 - 每个相机大约 20 张图像)进行立体校准。我现在有一个
在 Quadro 卡 X 驱动程序的 NVIDIA README 中,有这样的注释: Workstation overlays, stereo visuals, and the unified bac
我有两个立体图像,我想用它们来计算深度图。不幸的是,我不懂 C/C++,但我懂 python——所以当我找到 this tutorial 时,我很乐观。 不幸的是,教程似乎有些过时了。它不仅需要进行调
使用“立体声混音”获取系统音频很容易,但大多数现代驱动程序不再支持该功能。 Steam本地流媒体不知何故设法做到了,我可以在流媒体任意游戏时清楚地听到其他应用程序的音频输出。 Steam 是如何做到的
我有一个 32 位 *.wav 文件 44100Hz 采样。我使用 wave 和 python struct.unpack 将数据获取到数组。不过,我想将两个立体声 channel 中的每一个作为单独
我正在使用 Flutter 构建一个应用程序,它允许我录制音频然后稍后播放。我正在使用包 audio_recorder 0.4.0 来录制音频,并使用包 stereo 1.0.0 来播放音频。 当我使
在 OpenCV 立体中,如何检查给定的 3D 点 (x,y,z) 是否可以投影到左/右图像平面上?我已经校准了通过 stereoRectify 获得的相机参数。 更具体地说,我想将 projectP
我一直在使用 Azure SDK 并根据下面的引用页开发文本转语音应用 https://learn.microsoft.com/en-us/dotnet/api/microsoft.cognitive
我正在使用 node-microphone 从 nodejs 录制音频(这只是一个用于 arecord 的 javascript 接口(interface)),并且想要将流 block 存储在 Aud
我一直在使用 Azure SDK 并根据下面的引用页开发文本转语音应用 https://learn.microsoft.com/en-us/dotnet/api/microsoft.cognitive
我尝试使用一个 RemoteIO AudioUnit(这是唯一的 AudioUnit)的两个 AudioStreamBasicDescription 将音频输入设置为单声道并输出为立体声。 然后,我为
我希望将 MATLAB stereoParameters 结构转换为内部矩阵和外部矩阵,以便在 OpenCV 的 stereoRectify 中使用。 如果我明白http://docs.opencv.
我是一名优秀的程序员,十分优秀!