pili-engineering / PLMediaStreamingKit

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

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

Closed Ryeagle closed 8 years ago

Ryeagle commented 8 years ago

新建一个工程,同样的代码不会崩溃

2016-10-21 1 19 39 2016-10-21 1 19 27 2016-10-21 1 19 11
Ryeagle commented 8 years ago

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

devheng commented 8 years ago

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

Ryeagle commented 8 years ago

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

lawder commented 8 years ago

你们项目中用了 librtmp 吗?

Ryeagle commented 8 years ago

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

lawder commented 8 years ago

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

Ryeagle commented 8 years ago

@lawder 试了,不灵。。。

devheng commented 8 years ago

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

Ryeagle commented 8 years ago

@huangdeheng 我现在更新PLPlayer到2.30也会遇到依赖错误

2016-10-21 2 39 34
Ryeagle commented 8 years ago

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

devheng commented 8 years ago

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

Ryeagle commented 8 years ago

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

devheng commented 8 years ago

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

Ryeagle commented 8 years ago

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

Ryeagle commented 8 years ago

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

devheng commented 8 years ago

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