Cast播放器示例使用扩展来确定流是不是是实时流,它可以使用标头吗?

Posted

技术标签:

【中文标题】Cast播放器示例使用扩展来确定流是不是是实时流,它可以使用标头吗?【英文标题】:Cast player sample uses extension to determine if the stream is a live stream, can it use headers?Cast播放器示例使用扩展来确定流是否是实时流,它可以使用标头吗? 【发布时间】:2015-07-16 16:01:28 【问题描述】:

我有一个文件上没有 m3u8 扩展名的 m3u8 流,它无法播放。如果我更改扩展名,那么它可以工作。我认为这是因为 player.js 来自 github 上的 CastPlayer 示例。

if (sampleplayer.getExtension_(path) === 'm3u8' ||
        type === 'application/x-mpegurl' ||
        type === 'application/vnd.apple.mpegurl') 
        return cast.player.api.CreateHlsStreamingProtocol;
     else if (sampleplayer.getExtension_(path) === 'mpd' ||
        type === 'application/dash+xml') 
        return cast.player.api.CreateDashStreamingProtocol;
     else if (path.indexOf('.ism') > -1 ||
        type === 'application/vnd.ms-sstr+xml') 
        return cast.player.api.CreateSmoothStreamingProtocol;
    

既然我的标头没问题,是否可以使用标头代替扩展名?

谢谢。

【问题讨论】:

【参考方案1】:

也许我没有完全理解您的问题,但由于您使用的是自定义接收器,请随意进行您认为合适的更改。

【讨论】:

【参考方案2】:

来自documentation:

... 这段代码目前实现了一个简单的解析器来找出 内容类型基于文件的扩展名。例如 只要;您应该实现自己的机制来执行此操作。

我认为这意味着如果您能够以其他方式确定流类型,那就去做吧。

【讨论】:

以上是关于Cast播放器示例使用扩展来确定流是不是是实时流,它可以使用标头吗?的主要内容,如果未能解决你的问题,请参考以下文章

ExoPlayer 无法播放 Adob​​e 实时流编码器流式传输的音频/视频 (RTMP)

某些流的 Google Cast 速度很慢

实时音频流到移动设备 - 动态播放速度

Dash 实时流编码文档

没有扩展的 iOS 流音频

通过 SIP 连接的 J2ME 音频流