我正在开发一款需要使用Gstreamer一次播放多个RTSP流的应用, 单个流工作正常,因为我添加了第二个流,第一个流停止,第二个流开始播放,几秒后,它也停止并且应用程序崩溃。
这是APP流视图的屏幕截图
和APP崩溃时的截图
我更新了Gstreamer.framework,搜索并尝试了不同的解决方案。但没有任何效果
这是我用于管道流的代码示例
#import "VideoViewController.h"
#import "GStreamerBackend.h"
#import <UIKit/UIKit.h>
@interface VideoViewController () {
GStreamerBackend *gst_backend;
GStreamerBackend *gst_backend1;
int media_width; /* Width of the clip */
int media_height; /* height ofthe clip */
Boolean dragging_slider; /* Whether the time slider is being dragged or not */
Boolean is_local_media; /* Whether this clip is stored locally or is being streamed */
Boolean is_playing_desired; /* Whether the user asked to go to PLAYING */
}
在viewDidLoad中:
url1= my first url
url2=my second URL
这里我初始化了我的2个流。
gst_backend = [[GStreamerBackend alloc] init:self videoView:video_view];
gst_backend1 = [[GStreamerBackend alloc] init:self videoView:video_view1];
调用此委托方法:
-(void) gstreamerInitialized
{
dispatch_async(dispatch_get_main_queue(), ^{
firstInit=YES;
play_button.enabled = TRUE;
pause_button.enabled = TRUE;
message_label.text = @"Ready";
[gst_backend setUri:uri];
[gst_backend1 setUri:uri2];
//is_local_media = [uri hasPrefix:@"file://"];
//is_playing_desired = NO;
[gst_backend1 play];
[gst_backend play];
});
}
我认为问题出在搜索路径上。
答案 0 :(得分:2)
您使用的是哪个版本的GStreamer?我记得很久以前确切地修复了这个bug,你可以在这里找到有关它的详细信息:https://bugzilla.gnome.org/show_bug.cgi?id=720421
最好的方法是使用此处的最新二进制文件:http://gstreamer.freedesktop.org/data/pkg/ios/1.4.5/