iT邦幫忙

2025 iThome 鐵人賽

DAY 17
0

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

在本系列文因為工作上的產品應用需求,進而探索到很多層面的點滴事。透過每篇 EP 的分享把這些點滴整理,看起來或許像是個獨立的小品抒發文、也或許是一系列技術研究文!?

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

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


就如同前一回 EP16 所提及的要搞定 MSVC 版本的 Gstreamer 之前,就得先搞定 Avalonia UI 能夠透過 gstreamer-sharp 透過 binding 來使用 Gstreamer 的這部分。

所以,就先來追朔一下 "gstreamer-netcore" 是怎麼做到的。

把整個存放庫 Clone 回來後 Checkout 在 master 分支上最新的 Commit 時,用 Visual Studio 方案總管瀏覽時會看到一個比較神奇 (少見多怪?) 的狀況,整個存放庫的程式裡沒有 *.sln 檔案:
gstreamer-netcore-vs-solution-explorer-01

透過 Visual Studio 的方案總管來看時,確實可以看到 samples 資料夾裡面有兩個資料夾:

  1. AvaloniaPlayer
  2. ConsoleSample

切換到 "顯示所有檔案" 才會看到其資料夾內容。

(不過,當看到這兩個資料夾內有 .vscode 的子目錄,就大概可以猜想到大概是發生了什麼事。)

截至目前為止,個人還是會習慣用 Visual Studio 來開發 .NET 程式,所以把整個存放庫的架構改成這樣(右圖):
gstreamer-netcore-vs-solution-explorer-02

並 Commit 到從 gstreamer-netcore 來進行 fork 後,所建立的新存放庫(
gstreamer-sharp-netcore)。

若有興趣可以參考該 Commit:
fix: add solution file for vs

在不做任何原存放庫的程式碼的異動下,使用上述修改的 Commit 則可以直接透過 Visual Studio 測試執行 samples 方案資料夾裡面的兩個專案程式:

  1. GstreamerPlayer (Avalonia UI)
  2. NetCore3ConsoleSample (.NET Console)

在 Visual Studio 的目標執行專案當中就可以切換兩個專案來執行:
gstreamer-sharp-netcore

BTW,由於兩個專案的 TargetFramework 都還是使用 netcoreapp3.1,所以要順利正常執行要記得先安裝 netcoreapp3.1 的 .NET Runtime
.NET Runtime download

如果沒有安裝對應的 .NET Runtime 的話,執行的結果會如下顯示:
Excution-error

ㄟ...都...

那...那個 Gstreamer 的安裝就不用提了吧!?


上一篇
EP 16
下一篇
EP 18
系列文
莫名其妙就跟世界等級的 OpenSource 專案攪和了!?21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言