說實在的iOS上的UPnP資源有夠難找,大概是因為比較少人做的關係吧,加上如果下錯關鍵字保證是找好幾天找不到什麼東西,就算找到了也不知道能不能達成自己需要的功能,因此就產生了這一篇,希望幫助那些仍在迷途中的靈魂們。
UPnP Control Point Library
顧名思義這邊列出的library主要是做control point的
CyberLink4C
用C語言實現的library,有提供objective-c的wrapper,但並沒有包含全部功能,例如event的部份就需要使用到c api。
Platinum
這是一個以C++實現的解決方案,一樣有提供objective-c的wrapper,control point跟DMS都可以做。注意這個library預設是GPL授權的,如果商業使用需要申請商業授權。
upnpx
核心是C++,加上Objective-C API。VLC for iOS使用了這套library。年代有點久遠,不過堪用。簡單範例可以參考https://github.com/basti2310/upnpx-classes
個人推薦程度 Platinum > upnpx > CyberLink4C
Edit:
兩個新library
UPnAtom
使用swift實現的版本,可以用在Objective-C以及swift專案,目前swift變動很快,production環境不建議使用這個library。
CocoaUPnP
某個開發者因為upnpx無法滿足需求而自己寫的新library,還在非常早期的階段。
UPnP Media Server
Platinum
很多App的Local DMS都是用這套做的,應該沒什麼大問題。
coevo-upnp-server
這個source只能當參考用,年代已經有點久遠,而且裡面有非常多的bug,相信光是要掃雷就會花掉很多時間。
個人推薦程度 Platinum > coevo-upnp-server
順便附上用Platinum做DMS的demo project
https://github.com/vampirewalk/MediaServer
版主您好,想請問您是否有用過Upnpx並在播放時使用暫停的功能?(內建預設只能播放)
回覆刪除若有的話可以給我一點方向嗎?謝謝~
其實照理來說應該都會實做pause功能,你可能要找一下文件
回覆刪除版主您好,謝謝您的回覆,最後我已經改用Platinum-UPnP,也參閱過版主的source code,
刪除目前是想重寫一個APP,利用UPnP來播音樂,想請問版主,
是怎麼在Xcode中加入Platinum-UPnP的呢?(因為cocoaPod沒有支援,目前有點摸不著頭緒)
如果可以的話,麻煩版主分享,謝謝.
OK,謝謝版主,另外想請問,版主在實作DMS時,有依據機器的部分做設定嗎?
回覆刪除因為版主的DMS-SourceCode在模擬機上面是可以編譯且執行的,
但是,若直接上實機的話,會有error(Undefined symbols for architecture armv7),但是我看過了,所有的".m"以及".mm"檔都有確實link,想請板主給我一點方向,謝謝.