- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我遇到了 VLC 和 alsa-lib 的问题。
上下文如下:
我的问题如下:在运行我的应用程序时,如果我在 fork 和启动 VLC 之前使用 alsa-lib 设置音量,VLC 以高于预期的音量(即我设置的音量)开始。
如果我从我的程序中删除更改音量的代码,VLC 将以全局系统音量集启动(我测试时将音量设置为 0)。
当我从控制台运行 VLC 时,我得到了相同的行为,它从当前设置的全局系统卷开始。
为了提高精度:当我在我的程序中使用相同的代码段再次设置不同的音量时,但是在 fork 并启动 VLC 之后,音量级别被正确应用。由于我认为问题与alsa-lib调用有关,我尝试了alsa-lib中的几个函数来释放内存,但没有解决问题。
这是我使用(删除错误处理以提高可读性)使用 alsa-lib 设置音量的代码(受 Set ALSA master volume from C code 启发):
// ALSA mixer handle
snd_mixer_t *m_handle;
snd_mixer_elem_t* m_elem;
long volume = -1000; // This volume is in the allowed range specified by "amixer"
// Open an empty mixer
snd_mixer_open(&m_handle), SND_MIXER_ELEM_SIMPLE);
snd_mixer_attach(m_handle, "hw:0");
snd_mixer_selem_register(m_handle, NULL, NULL);
// Load the mixer elements
snd_mixer_load(m_handle);
// Configure the simple element we are looking for
snd_mixer_selem_id_t *simpleElemId; // mixer simple element
snd_mixer_selem_id_alloca(&simpleElemId);
snd_mixer_selem_id_set_index(simpleElemId, 0);
snd_mixer_selem_id_set_name(simpleElemId, "PCM");
m_elem = snd_mixer_find_selem(m_handle, simpleElemId);
// Here is set the global system volume
snd_mixer_selem_set_playback_volume_all(m_elem, volume);
snd_mixer_detach(m_handle, "hw:0");
snd_mixer_close(m_handle);
我用另一个打开的控制台检查音量级别是否使用 alsamixer 命令正确设置。所以我可以说在运行 VLC 之前音量设置正确。所以我不明白为什么它在启动时会出现音量问题...
我可以使用调用 alsa-lib 的代码吗?我是否忘记释放或删除元素?
注意 1:alsamixer 显示 VLC 在启动时没有修改全局系统卷。
注意 2:详细选项 (-vvv) 提供相同的跟踪,无论它是从我的 C++ 程序(有音量问题)还是从控制台启动的
感谢您的帮助:)
最佳答案
此问题是由于 Raspberry PI 固件中的错误造成的。现在已经解决了(参见我打开的错误报告:https://github.com/raspberrypi/linux/issues/570)。
要获取最新的固件,请运行命令:sudo rpi-更新
该错误已在 3.10.38+ 版本中修复 #675 PREEMPT Sun Apr 27 18:15:12 BST 2014 armv6l
希望这会有所帮助!
关于c++ - 调用 alsa-lib 后启动时 VLC 音量错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22734921/
这样的问题:我有一个用两个声道录制的视频文件。我试图通过此代码关闭左声道: MediaPlayer mp; .... mp.setVolume(0.f, 1f); ... 在平板电脑上效果很好(右音量
我正在使用: SystemSoundID soundID; AudioServicesCreateSystemSoundID((CFURLRef)filePath, &soundID); AudioS
是否可以使用代码更改 Mac 的音量? 最佳答案 如果您使用 C++ 进行编码,则可以使用 Carbon API http://developer.apple.com/carbon/您能更具体地说明您
我正在使用 HTML 5、jQuery 和 Amplitude.js 从头开始创建响应式音频播放器,用于实时流式传输。 播放器右侧是一个“扬声器图标”,单击该图标可静音,但只需悬停鼠标即可显示垂直
我在Flash Professional CC库中添加了声音,并让程序将其转换为MP3。如果我创建一个图层并将声音拖放到舞台上,则声音可以很好地播放(即使在通过Swiffy传递之后),但是到目前为止,
我正在尝试播放媒体类型为 STREAM_ALARM 的 radio 流,并使用硬件按钮更改其音量。 它需要是 STREAM_ALARM,因为它实际上是一个闹钟:即使插入耳机和/或手机设置为静音,它也应
我有 2 个媒体播放器播放不同的声音。我想使用 ProgressBar 来控制 MediaPlayer 的声音。 我知道如何使用进度条控制系统声音,但它会将两个媒体播放器的音量设置为相同,这就是我想要
我正在创建一个带有播放、暂停和音量 slider 的广播流媒体应用。 我已经使用 MPVolumeView 实现了音量 slider ,但遗憾的是它无法正常工作。 任何人都可以告诉我正确的代码,以便音
我到处搜索,但找不到问题的答案。 我在我的应用程序上播放多种声音,并让用户通过按钮调节音量。所以如果用户愿意的话,他可以用0.5的音量来播放。所以我有这个代码: NSString *path = [[
在我的应用程序中,我必须在点击按钮时播放警报声,当铃声音量设置为某个值时我可以播放它,但我的问题是当用户将铃声音量设置为零时,我该如何播放声音最大吗? 最佳答案 按照官方规定,你不能这样做。作为一名智
我好像找不到解决办法。请帮助我。 我想做的是有一个简单的音量 slider 。 所以,如您所见,橙色部分是我的音量 slider 。 这是我的 jQuery: var mouseDown = fals
Ubuntu 的启动/登录声音可能非常响亮,但我确实喜欢这样。我写了一个脚本,使用 amixer 将音量设置为 25%。这是我喜欢的音量,但当我使用电视输出或耳机时,我必须调高音量。我似乎无法让脚本在
我在 Android 上使用 APPRTCdemo 应用程序。我试图让它播放来自其他对等方的声音,与 Android 设置中设置的音量一样大。因此,如果用户将设备静音,则不会听到音频。我几乎尝试了每个
我正在为 ios7 编写一个应用程序,它需要控制内置音乐播放器的音量或一般的主音量级别。我试过使用 MediaPlayer.framework 但不确定是否正确。我想知道解决这个问题的最佳方法是什么。
我们的软件应该播放声音(不仅仅是小的噪音,还有语音等)。我想知道音量控制怎么样。 Windows Vista 风格指南说要在 Windows 混音器中定义应用程序特定的音量控制。 但是 Windows
我的应用程序的一部分有一个媒体组件,我正在寻找一个我可以使用的不错的音量 slider ,而不是为此目的看起来有点丑陋的 JSlider(或者具体来说,具有自定义视觉效果的扩展 JSlider 会很好
你好,我试着改变我的 SKAudioNode 的音量,有人知道怎么做吗?我试图找到解决方案,但没有找到......AudioNode 类对我来说似乎很薄。我也无法访问嵌套的 Audio 类以从那里尝试
基本上,如果我更改 slider 级别,它只会影响单击而不影响 keydown,即使它们调用相同的 playSound 函数也是如此。不知道我搞砸了什么 function App() { cons
我在 txt 中有一个文件列表,我需要连接(文件是相同的编解码器和大小并且有声音),而不是我需要添加一个音量为 50% 的音轨。谢谢 这是我用来连接的命令,但这用新的音轨替换了音频,相反我需要与文件中
我正在寻找在我的 .NET 2.0 WinForms 应用程序中使用的类似轨迹栏的用户/自定义控件。 注意:我不是在问如何控制 WinForms 应用程序中的音量。 任何人都知道可以在我的应用程序中使
我是一名优秀的程序员,十分优秀!