老牌開發工具Qt的技術長兼專案主要維護者Lars Knoll,在專案開發的郵件列表中提到,Qt多媒體(Multimedia)模組新的API和實作,將會合併回開發分支中。這項消息代表該模組有望將會如官方在去年底承諾的一樣,於Qt 6.2版本進入該框架。

Qt多媒體模組是Qt從第5版本更新到第6主要更新版本時,被跳過的一個重要模組,多媒體模組提供了一組功能豐富的QML(Qt Markup Language)類型以及C++類別,讓開發者能夠方便地處理多媒體內容,並且也提供必要的API,供開發者存取攝影機和無線電功能,其內含Qt音訊引擎,能夠處理3D音效播放和內容管理。官方提到,多媒體模組大概是Qt 5到Qt 6變化最大的模組,他們在Qt 5生命周期維護多媒體模組遇到很大的問題,而且也無法真正的在所有平臺提供一致的功能。

官方希望在Qt 6中情況得以改變,為了實現此一目標,他們更改了部分公共API,並且重新改造了內部架構,尤其在多媒體連接到特定平臺的後端,做了許多改善,除了清理後端API和進行簡化之外,現在開發者會在編譯的時候選擇後端,每個平臺也只支援一個後端。架構清理工作簡化了程式碼庫,該模組從Qt 5.15版本的14萬行程式碼,現在降低到7.3萬行。

新的Qt多媒體模組具有一個稱為QMediaDevices的API,可以用來發現輸入和輸出裝置,並且取得有關上下文變更通知,另一個新添加的QMediaFormat API,則能夠用來查詢支援的編碼器和檔案格式。

Lars Knoll提到,這個模組仍然有許多需要修復的問題,但程式碼現在處於良好的狀態,其他工作會在合併回開發分支後繼續進行。而在Qt 6.2後,多媒體模組將進入功能凍結狀態,模組還有一個例外需要處理,特別是在攝影機和媒體捕捉功能,Windows和Android後端仍需要改善。而Linux的gstreamer後端,以及iOS與macOS的AVFoundation,則處在良好的狀態。

Qt在去年底的時候,發布了最新的主要更新版本Qt 6.0,該版本加入了許多新功能,包括更新的C++語言結構,並且採用全新圖形架構,使得2D與3D開發體驗更加一致。

但是這個版本遭到許多開發者抱怨,因為Qt 5.15的許多附加模組,並沒有跟著移植到Qt 6.0,並且在1月的時候,官方突然宣布Qt 5.15 LTS進入商用階段,使得許多免費用戶卡在無法使用Qt 5.15 LTS版本,但是Qt 6.0模組不足的尷尬情況。直到最近釋出的Qt 6.1,官方才補上許多好用的模組,並預計在6.2繼續補上重要的多媒體模組。

熱門新聞

Advertisement