- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试开发一个小应用程序,您可以在其中加载 mp3 文件并以可变速度播放它! (我知道它已经存在 :-) )
我正在使用 Qt 和 C++。我已经有了基本的播放器,但我仍然坚持使用速率,因为我想在不停止播放的情况下平滑地更改速率(就像在 Mixxx 中一样)!如果我更改值并在声音中产生间隙,QMediaPlayer 总是会停止。我也不想改变音调!
我已经找到了一个叫做“SoundTouch”的东西,但现在我完全不知道如何处理它,如何处理我的 mp3 数据以及如何将它提供给播放器! “SoundTouch”库能够做我想做的事,我从 homepage 上的样本中得到了它.
感谢任何帮助! 我也愿意接受任何其他解决方案,然后是“SoundTouch”,只要我能继续使用 Qt/C++!
(第二件事:我想查看波形概览以及它的移动部分(围绕歌曲的实际位置),因此我还可以使用有关如何获取波形数据的提示)
提前致谢!
最佳答案
截至目前(Qt 5.5),仅使用 QMediaPlayer 是不可能做到的。您需要执行以下操作:
使用 GStreamer、FFMpeg 或(新)QAudioDecoder 解码音频:http://doc.qt.io/qt-5/qaudiodecoder.html - 这将为您提供原始 PCM 流;
将 SoundTouch 或其他一些库应用于此原始数据以更改音高。如果GPL没问题,看看http://nsound.sourceforge.net/examples/index.html ,如果你开发专有的东西,STK 可能是更好的选择:https://ccrma.stanford.edu/software/stk/
使用QAudioOutput将修改后的数据输出到音频设备。
此策略尽可能使用Qt,并为您带来最好的平台覆盖(尽管Android不支持QAudioOutput,您仍然会失去它)
关于c++ - 在 Qt 和 C++ [QMediaPlayer] 中更改 mp3 速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33088043/
我想获取小部件应用程序的屏幕截图,然后使用 setMedia() 将其原始数据缓冲区设置为 QMeidaPlayer。到目前为止我所做的是接收图像,保存它,然后从中读取。但是,我想问你如何直接读取原始
问题:以下调用不会让 QMediaPlayer 播放任何声音。 player->setMedia(QUrl("qrc:/snd/coin-refund.mp3")); player->play();
我正在尝试实现一个检查视频文件的服务器终端应用程序。我需要获取音频/视频编解码器、分辨率、比特率、长度等信息。 我在 QMediaResource 中找到了大部分需要的信息.在阅读了多个示例之后,我得
我想知道为什么 QMediaPlayer 不是从另一个线程播放,而是在调用者线程停止时开始播放。 例如: 线程 A 调用(调用由信号槽完成)到线程 B 开始播放 MP3,但线程 A 继续他的工作,但是
我创建了一个默认的 Qt GUI 应用程序,我在主窗口类中添加了 void keyPressEvent(QKeyEvent* ev);,当用户按下空格时,应用程序将播放声音 (ok) 但是当用户在短时
我正在研究创建简单视频播放器的选项。我想做的是在播放视频时应用一些音频处理(例如,为简单起见,使用低通滤波器)。我看过 Qt 多媒体 API,所以这是我的主要问题: 如何编辑 QMediaPlayer
我刚开始使用 C++,我正在尝试使用 Qt 播放 mp3 文件。我写了这段代码,但由于某种原因它不起作用。我在互联网上进行了搜索,但找不到任何有用的东西。 这是我的代码: #include #inc
我是 Qt 的新手。我在使用 QMediaPlayer 时遇到问题:我的程序有 2 种形式(主形式和通知形式)。所以它有条件,如果它是真的,程序必须显示第二种形式并在加载形式上播放音乐。 主要.cpp
您好,我仍在为今年学校的主要项目学习 C++ 和 QT,我希望在 C++ 的一些语法和使用某些 QT 函数方面得到一些帮助。在制作媒体管理器时,我设法通过按下表单中的按钮来播放歌曲。现在我想通过按另一
我在 Windows 8 Pro x64 上使用 Qt Creator 2.7.2 (Qt 5.1)。我在使用 QMediaPlayer 时遇到问题。我的 PC 上有一些 MP3 文件在 Window
我试图弄清楚 Qt 中的 QMediaPlayer 支持什么,但找不到特定的格式列表(MP3、AAC、FLAC、MIDI 等)。 最佳答案 QtMultimedia 中有几个可用的后端。例如,QtMu
我正在尝试在我的应用程序中设置 QVideoWidget,但没有音频/视频。这就是我创建相关对象的方式: m_player = new QMediaPlayer; m_playlist = new Q
我正在使用 Qmediaplayer 开发视频播放器。当我设置一个标签来显示视频的持续时间时,它显示了错误的值。 float duration = mediaPlayer.duration() / 1
我正在使用 QMediaPlayer 播放音频并且想要可视化音频电平(例如在 this video 中)。 我已经从 Qt 4 文档中找到了一个示例,但是他们手动生成了信号,我发现无法使用 QMedi
我正在使用 qt5.0。我创建了 dll 并将我所有的音频文件放在 dll 中。现在我正在从资源创建文件并播放。它工作正常。 但问题是播放文件后,我无法删除该文件并重新创建新文件。 如果我尝试手动删除
我正在尝试在 QMediaPlayer 的视频结束后执行某种操作/操作。我知道您可以检查播放器 player->state() 的状态,并且有一个“已停止”状态。但我想知道如何将这种状态与某个 Act
我想从 QMediaPlayer 中保存帧的图像.阅读文档后,我明白我应该使用 QVideoProbe .我正在使用以下代码: QMediaPlayer *player = new QMediaPla
如何使用 K-Lite Codec Pack 工具 DirectVobSub 禁用 QMediaPlayer 自动加载字幕?如果字幕文件位于视频文件的同一目录中,我不想在 QMediaPlayer 中
我知道 C++ 不支持 QMultimediaWidgets。我也在为 Android 开发 native 应用程序。因为我不使用 QML,所以我需要一种在应用程序中播放视频的方法。我想使用 QMed
这似乎太简单了,我一定是忽略了什么? 如何从 QMediaPlayer 显示的视频文件中找到原始视频大小或纵横比? 视频Resolution,PixelAspectRatio等,应该在MetaData
我是一名优秀的程序员,十分优秀!