pili-engineering / PLMediaStreamingKit

PLMediaStreamingKit 是七牛推出的一款适用于 iOS 平台的推流 SDK,支持 RTMP 推流,h.264 和 AAC 编码,硬编、软编支持。具有丰富的数据和状态回调,方便用户根据自己的业务定制化开发。具有直播场景下的重要功能,如:美颜、背景音乐、水印等功能。

Home Page:https://github.com/pili-engineering/PLMediaStreamingKit

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

在我的项目中使用[mediaSession stopsreaming]的时候崩溃

Ryeagle opened this issue · comments

新建一个工程,同样的代码不会崩溃
2016-10-21 1 19 39
2016-10-21 1 19 27
2016-10-21 1 19 11

是我的项目中的什么东西冲突了吗?我该怎么找到?

@Ryeagle 建议检查一下你的项目中与 demo 工程中的调用流程的差异,还有就是调用线程是否有不同

@huangdeheng
一模一样的代码
之前PLPlayer与我们自己写的推流库冲突了,也遇到了这样的问题,我把PLPlayer降级成2.1.0就能用了。
现在是PLMediaStreamingKit不知道与什么冲突了

你们项目中用了 librtmp 吗?

@lawder
对,使用了。但是我已经删除了

把工程 clean 一下,同时把 DerivedData 删掉后再试试。

@lawder
试了,不灵。。。

你们工程中是用 CocoaPods 引入 PLMediaStreamingKit 的吗?看一下是什么版本,还有也贴一下 pili-librtmp 的版本

@huangdeheng 我现在更新PLPlayer到2.30也会遇到依赖错误
2016-10-21 2 39 34

在demo工程中,可以更新到最新的PLPlayer,也可以正常跑推流程序,关闭推流。。。

@Ryeagle Pod 的版本号应该没问题,但是看你截图的调用栈,最终调到了 RTMPError_Free,正常是 PILI_RTMPError_Free,感觉还是链接出错导致的,建议检查一下你们原来的 librtmp 库是否真的清理干净,或者试一下删掉 pod 重新 install

@huangdeheng
我找到原因了,我们项目中使用的是use_frameworks,动态编译的方式
PLPlayerKit与PLMediaStreamKit发生了冲突。
所以PLPlayerKit只好使用静态编译方式编译好了,再手动拖进去

@Ryeagle 使用我们的 demo 加上 use_frameworks 选项会这样么?

@huangdeheng
我没用你们的demo试,用我们的demo试了会崩溃(之前静态编译是不会崩溃的),你们的demo也应该会崩溃。
动态编译的时候,链接出现错误。这就是之前我们自己的音频推流库会与你们的PLPlayer最新的库会产生冲突的原因

@huangdeheng 当然,如果你们的demo中没有使用PLPlayerKit,动态静态编译都不会崩溃

@Ryeagle 嗯,我们这边再试下集成 PLPlayerKit 并使用 use_frameworks 的情况,如果出现类似 crash,会进行修复的