推流播放FAQ

最近更新时间:2017-12-21 21:18:41

常见问题

  • [iOS推流](#iOS streamer)
  • [Android推流](#Android streamer)
  • [iOS播放](#iOS player)
  • [Android播放](#Android player)

iOS推流

具体可见常见问题

  • SDK是否需要鉴权?

不需要鉴权。

  • 集成方式

我们的SDK中提供了两种集成方式

1.封装类:KSYGPUStreamerKit = KSYGPUCamera + KSYBgmPlayer + KSYAudioMixer+...

2.积木类:KSYGPUStreamer(用户可以通过自己的需要来添加想要的功能)

  • 用户可以自定滤镜吗?

可以。

  • 在推流开始以后可以修改分辨率吗?

不可以,分辨率在预览之前就已经设置完成,在推流开始就不能修改。

  • SDK是否可以在断开连接后,自动重新连接?

可以,SDK会监测当前推流的状态,当监测到connection break后,会自动重新连接。

  • 我们sdk大小几十兆为什么集成到APP后增量只有几兆?

正常的程序有编译、链接两个阶段, 静态库是编译后的内容 , 是比较大的,它把所有可能被用到的内容都包含进去了,还有模拟器的内容 ,最后生成APP的时候,还有一个链接的环节, 把真正用的内容放到app里去时,模拟器之类的内容都被去掉了,所以集成到APP的增量只有几兆。


Android推流

具体可见常见问题

  • 是否可以拿到音视频的原始数据

可以,详细参考:

  • 混音支不支持主播声音和背景音乐音量独立调节

支持。 主播声音调节 用KSYStream的接口setVoiceVolume 背景音乐调节调用代码 KSYBgmPlayer.setVolume(bgmVolume);的接口,参考背景音乐

如果希望独立调节混音后背景音乐的声音,需要调用KSYStream的setHeadsetPlugged(true) 该接口设置为false的话,不会对背景音乐进行混音。

  • 动态码率如何设置?软硬编都支持吗?

v3.x在推流前通过KSYStreamerConfig的接口mAutoAdjustBitrate来配置是否支持码率自适应。

v4.x在推流前通过KSYStreamer的接口setVideoBitrate来配置是否支持码率自适应,参考参数设置 中的[视频码率及码率自适应]章节

3.3.1.0 以前的版本 硬编默认是自动调整码率,也就是mAutoAdjustBitrate被强制置为true。>3.3.1.0以后软硬编都可以通过上面的接口配置

  • 带宽不够的话会推流失败吗?

不会,带宽不够的情况,会发生丢包的情况。

  • 是否支持定制预览Size

3.X不支持,只能全屏

4.X版本支持,您可以设置自己的GlSurfaceView的大小

  • 推流只能推到金山云的服务器吗?

不是,SDK内部对于推流地址没有做限制

  • 水印路径如何设置?

3.x 线上版本支持两种方式设置,一是设置绝对路径;二是直接设置在assert目录下面的文件名即可。逻辑上会先按照绝对路径的方式decode,失败的情况下会去assert目录找

4.x 如果是sdcard目录下面的需要指定前缀file:// 如果是assert目录下面的需要指定asserts://前缀 参考水印


iOS播放

具体可见常见问题

  • 如何获取播放内容的总时长,当前播放时间和当前可播放长度?

获取播放内容总时长,请使用duration

获取当前播放时间,请使用currentPlaybackTime,标记的是播放器已经播放的时长; 获取当前可播放长度,请使用playableDuration,标记的是播放器缓冲的时间,会稍大于currentPlaybackTime,与currentPlaybackTime的差值则是缓冲长度

  • 如何获得播放失败的错误码?

首先需要注册监听MPMoviePlayerPlaybackDidFinishNotification通知

接受到此通知时,从notify中提取MPMoviePlayerPlaybackDidFinishReasonUserInfoKey来获得具体的结束原因,若结束原因为MPMovieFinishReasonPlaybackError,则可以进一步提取error来获得具体错误码

具体的结束原因请见MPMovieFinishReason

具体的错误码请参考KSYMPErrorCode

  • reload功能的使用方法

reload的具体说明可参考高级功能中的reload特性

调用该方法后,当播放器完成码流解析的准备工作,同样会发送 MPMediaPlaybackIsPreparedToPlayDidChangeNotification

  • 后台播放逻辑

播放器支持后台播放,但是需要APP具有后台执行权限。具体设置方法是:工程的build选项->Capabilities标签->Background Mode选项设置为ON,并勾选Modes中的Audio, AirPlay and Picture in Picture选项,如下图所示:

推流播放FAQ

当用户点击home按钮后,播放器进入后台继续读取数据并播放音频;当APP回到前台后,音频继续播放,图像渲染内容保持和音频同步

如果在开启后台运行模式后,需要切换后台暂停,需要监听相关事件并主动调用pause操作;回到前台后主动调用play操作恢复播放


Android播放

具体可见常见问题

金山云,开启您的云计算之旅

免费注册