iT邦幫忙

2025 iThome 鐵人賽

DAY 30
0

Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~

在本系列文因為工作上的產品應用需求,進而探索到很多層面的點滴事。

透過每篇 EP 的分享把這些點滴整理,看起來或許像是個獨立的小品抒發文、也或許是一系列技術研究文!?

總之,就當作的隨手雜記文吧!

本篇是 莫名其妙就跟世界等級的 OpenSource 專案攪和了!? 系列文的 EP30。


等等...

說好的 "桌面" 跨平台呢?

都只有看到展示 Windows 的部分阿!

你他媽的耍詐陰我
(圖片取自 DETOOLS 網站 網路迷因梗圖)

這裡就來用 Windows Subsystem for Linux (WSL) 搭配 Ubuntu 環境來作為 Linux 的代表吧!

而在 Visual Studio 有安裝好相關的 "個別元件" 時,也可以直接透過 Visual Studio 進行在 WSL 的程式執行偵錯。

透過 "Visual Studio Installer" 的 "個別元件" 頁籤,所需安裝相關的 "個別元件" 為:

  1. 使用 WSL 進行 .NET 偵錯。
    WSL-Debug-dotNET-01

  2. 適用於 Linux 和 Mac 的 C++ CMake 工具

  3. 適用於 Linux 和 Mac 的遠端檔案總管

  4. 適用於 Linux 和 Mac 開發的 C++
    WSL-Debug-dotNET-02

再檢查一下:
WSL-Debug-dotNET-03

確認安裝完成後,再次開啟先前的專案。

在 GstreamerPlayer 專案的 Properties 當中放入 "launchSetting.json":

{
  "profiles": {
    "GstreamerPlayer": {
      "commandName": "Project"
    },
    "WSL": {
      "commandName": "WSL2",
      "distributionName": ""
    }
  }
}

launchSetting.json-1

接下來就可以在 Visual Studio 的工具列 -> 執行偵錯 當中選到 "WSL"。
launchSetting.json-2

若要完成後面文章所敘述的執行呈現效果,請先在 Windows 當中安裝好 WSL 的 Ubuntu 環境,並且確認該 Ubuntu 環境已安裝好 Gstreamer 的執行環境。
可參考:

  1. 在 WSL 的 Ubuntu 執行 .NET 裝置端應用 - 以 GStreamerPlayer 為例
  2. 把 WSL 中的 Ubuntu 環境升級 Kernel 到最新的 LTS 版本

出現 GstreamerPlayer 的視窗畫面(很明顯地跟 Windows 11 呈現的視窗樣式不同):
GstreamerPlayer-in-WSL-01

Menu 選單:
GstreamerPlayer-in-WSL-02

由於沒有放 *.mp4 檔案在該 Ubuntu 環境中,所以透過 "URI" 來播放:
GstreamerPlayer-in-WSL-03

選取完成:
GstreamerPlayer-in-WSL-04

點選 "Open":
GstreamerPlayer-in-WSL-05

播放影片中 - 1:
GstreamerPlayer-in-WSL-06

播放影片中 - 2:
GstreamerPlayer-in-WSL-07

在 WSL 當中開啟 htop 來看一下效能:
GstreamerPlayer-in-WSL-08

回到 Visual Studio 的輸出窗格當中,選到 "偵錯" 可以看到相關的 Console 輸出:
Visual Studio-Debug-for-WSL


說好是 "桌面" 跨平台...那 macOS 呢?👀👀👀

不要小看 .NET + Avalonia UI + Gstreamer 唷!

若要完成文章後續所敘述的的效果呈現,請先在 macOS 環境已安裝好 .NET 與 GStreamer 的執行環境。
可參考:

  1. 在 macOS 中使用 GStreamer - 安裝 Homebrew (或稱 brew)
  2. 在 macOS 中使用 GStreamer - 透過 Homebrew 安裝 GStreamer
  3. 在 macOS 中執行 .NET 裝置端應用 - 以 GStreamerPlayer 為例

出現 GstreamerPlayer 的 macOS 視窗畫面(很明顯地可以注意到跟 Windows 11、 Linux 所呈現的視窗樣式不同):
GstreamerPlayer-in-macOS-01

Menu 選單:
GstreamerPlayer-in-macOS-02

由於沒有放 *.mp4 檔案在該 macOS 環境中,所以透過 "URI" 來播放:
GstreamerPlayer-in-macOS-03

選取完成:
GstreamerPlayer-in-macOS-04

點選 "Open":
GstreamerPlayer-in-macOS-05

播放影片中 - 1:
GstreamerPlayer-in-macOS-06

播放影片中 - 2:
GstreamerPlayer-in-macOS-07

那這樣 Windows、Linux 與 macOS 三種桌面作業系統都有展示到了唷!

如果需要其 GStreamerPlayer 裝置端 .NET 應用做為參考,可以直接下載其 [Source Code] Samples 底下的 Console 專案及 AvaloniaUI 專案,都可以正常運作喔~~~

並可參考 有關 GStreamerPlayer 能跨平台運作的處理 文章了解其設計原理。


上一篇
EP 29 - 整個系列文提到的相關使用整理
系列文
莫名其妙就跟世界等級的 OpenSource 專案攪和了!?30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言