2015年1月31日 星期六

在iOS上開發UPnP相關App的資源

說實在的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

4 則留言:

  1. 版主您好,想請問您是否有用過Upnpx並在播放時使用暫停的功能?(內建預設只能播放)
    若有的話可以給我一點方向嗎?謝謝~

    回覆刪除
  2. 其實照理來說應該都會實做pause功能,你可能要找一下文件

    回覆刪除
    回覆
    1. 版主您好,謝謝您的回覆,最後我已經改用Platinum-UPnP,也參閱過版主的source code,
      目前是想重寫一個APP,利用UPnP來播音樂,想請問版主,
      是怎麼在Xcode中加入Platinum-UPnP的呢?(因為cocoaPod沒有支援,目前有點摸不著頭緒)
      如果可以的話,麻煩版主分享,謝謝.

      刪除
  3. OK,謝謝版主,另外想請問,版主在實作DMS時,有依據機器的部分做設定嗎?
    因為版主的DMS-SourceCode在模擬機上面是可以編譯且執行的,
    但是,若直接上實機的話,會有error(Undefined symbols for architecture armv7),但是我看過了,所有的".m"以及".mm"檔都有確實link,想請板主給我一點方向,謝謝.

    回覆刪除