补充 Multimedia 组件的使用和说明。

Signed-off-by: rick.chan <cy@haoan119.com>
This commit is contained in:
rick.chan 2024-07-04 18:14:56 +08:00
parent 8af901e371
commit 8227f21761
1 changed files with 38 additions and 0 deletions

View File

@ -43,6 +43,8 @@ published: true
- [8.7. GridView](#87-gridview) - [8.7. GridView](#87-gridview)
- [8.8. BusyIndicator](#88-busyindicator) - [8.8. BusyIndicator](#88-busyindicator)
- [8.9. VirtualKeyboard](#89-virtualkeyboard) - [8.9. VirtualKeyboard](#89-virtualkeyboard)
- [8.10. Multimedia](#810-multimedia)
- [8.10.1. VideoOutput 和 MediaPlayer](#8101-videooutput-和-mediaplayer)
- [9. 多文档开发](#9-多文档开发) - [9. 多文档开发](#9-多文档开发)
- [9.1. 多 QML 文件的管理](#91-多-qml-文件的管理) - [9.1. 多 QML 文件的管理](#91-多-qml-文件的管理)
- [9.2. 如何引用自定义 QML 文件](#92-如何引用自定义-qml-文件) - [9.2. 如何引用自定义 QML 文件](#92-如何引用自定义-qml-文件)
@ -745,6 +747,42 @@ CONFIG+="lang-en_GB lang-zh_CN"
更多关于 VirtualKeyboard 的应用可以参考官方自带示例。 更多关于 VirtualKeyboard 的应用可以参考官方自带示例。
### 8.10. Multimedia
需要引入:
```js
import QtMultimedia x.xx
```
主要包含音视频的输入、处理和输出Video、Audio、Camera、VideoOutput、MediaPlayer、SoundEffect 等。
#### 8.10.1. VideoOutput 和 MediaPlayer
Qt 只是提供了便捷易用的接口,实际的编解码功能由后端实现。 Qt5 Linux 下视频后端为 GStreamerWin 下为 DirectShow建议使用 [LAVFilters](https://github.com/Nevcairiel/LAVFilters)ffmpeg based DirectShow Splitter and Decoders。Qt6 在 Linux 下好像增加了对 ffmpeg 的支持。
在使用 VideoOutput 和 MediaPlayer 时,有些时候程序编写正确,跑起来也没提示什么错误,但就是不播视频,显示黑屏且没有声音,此时很可能是后端没有安装或安装错误导致。
VideoOutput 和 MediaPlayer 的使用非常简单MediaPlayer 作为播放器 VideoOutput 作为输出显示,二者配合工作:
```js
MediaPlayer {
id: player
source: "file:./SampleVideo.mp4"
autoPlay: true
}
VideoOutput {
id: videoOutput
source: player
anchors.fill: parent
}
```
值得注意的是MediaPlayer 的 source 路径格式必须是以“file:”开头的本地文件格式(不支持 qrc 资源文件路径)。示例里使用了相对路径,也可以使用绝对路径(如 Win 下file://C:\\\path\\\to\\\SampleVideo.mp4或 Linux 下: file:///path/to/SampleVideo.mp4。在使用相对路径时需注意这个路径是相对 Qt 的调试目录而言。
目前不清楚能否使用网络 URL 格式路径。
## 9. 多文档开发 ## 9. 多文档开发
### 9.1. 多 QML 文件的管理 ### 9.1. 多 QML 文件的管理