2016-01-16 37 views
6

你將如何從icecast2播放流不具有文件擴展名ios9/swift2/xcode7 + AVplayer的Icecast不處理沒有擴展

例如流的URL流:http://icecast:8044/channel-123?a=hash

格式:MP4A

該代碼似乎在擴展名的文件上工作,但不在沒有的文件上。

var player = AVPlayer(); 
    let playerItem = AVPlayerItem(URL:NSURL(string:"http://host/file.mp4a")!); 
    player = AVPlayer(playerItem:playerItem) 
    let playerController = AVPlayerViewController() 
    playerController.view.frame = self.view.frame 
    playerController.player = player 
    self.addChildViewController(playerController) 
    self.view.addSubview(playerController.view) 
    player.play() 

編輯:基本上在流地址不包含文件擴展名結尾(在服務器上存儲的文件沒有任何文件擴展名狀.MP3,.MP4,..)的AVPlayer不會玩什麼(http://example.com/file)。 ..但是,如果文件名包含文件擴展名,它可以正常工作(http://example.com/file.mp3

+0

嗨@MazelTov,你還在尋找這個AVPlayer icecast問題的答案嗎? – ncke

+0

是的,你有沒有觸摸服務器端的工作解決方案? –

+0

很確定我是。只是在POC上工作,然後我會寫出來。 – ncke

回答

0

看起來你很迷惑實況流和從服務器加載媒體文件。

如果我們談論的是現場直播:

1)文件擴展名對AVPlayer播放流的能力沒有影響(AVPlayer播放從這個鏈接的音頻,例如:http://icecast.omroep.nl/radio1-bb-aac)。

2)然而,文件格式是物質(詳細信息檢查文檔here):

什麼是視頻和音頻格式的支持細節?

雖然協議規範不限制的視頻和音頻格式,目前蘋果支持以下格式:

視頻:H.264 基線水平3.0,基準水平3.1,主級3.1,高級別4.1。 音頻: HE-AAC或AAC-LC高達48 kHz,立體聲音頻 MP3(MPEG-1 Audio Layer 3)8 kHz至48 kHz,立體聲音頻 AC-3(適用於Apple TV,處於直通模式)

如果您有自己的服務器並希望提供流式音頻/視頻功能,則需要執行一些設置操作,如here所述。