ios9/swift2/xcode7 + AVplayer icecast不会在没有文件扩展名的情况下处理流媒体

sub*_*mit 6 avplayer swift ios9 xcode7

你将如何播放来自没有文件扩展名的icecast2的流

示例流网址: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()
Run Code Online (Sandbox Code Playgroud)

编辑:基本上当流地址结束没有文件扩展名(服务器上的文件存储没有任何文件扩展名,如.mp3,.mp4,..)时,AVPlayer将不会播放任何内容(http://example.com/file) ...但如果文件名包含文件扩展名,则它可以正常工作(http://example.com/file.mp3)

Rom*_*lov 0

您似乎混淆了实时流媒体和从服务器加载媒体文件。

如果我们谈论直播:

1) 文件扩展名对 AVPlayer 播放流的能力没有影响(AVPlayer 从此链接播放音频,例如: http: //icecast.omroep.nl/radio1-bb-aac)。

2)尽管如此,文件格式很重要(有关更多信息,请查看此处的文档):

支持的视频和音频格式的具体情况是什么?

虽然协议规范没有限制视频和音频格式,但当前Apple实现支持以下格式:

视频:H.264 基线级别 3.0、基线级别 3.1、主要级别 3.1 和 High Profile Level 4.1。音频:HE-AAC 或 AAC-LC 高达 48 kHz,立体声音频 MP3(MPEG-1 音频层 3)8 kHz 至 48 kHz,立体声音频 AC-3(适用于 Apple TV,仅在直通模式下)

如果您拥有自己的服务器并希望提供流式传输音频/视频的能力,则需要执行此处所述的一些设置操作。