我正在开发一个应用程序,它需要使用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];
});
}
我认为问题在于搜索路径。
您使用的是哪个版本的GStreamer?我记得很久以前确切地修复了这个bug,你可以在这里找到有关它的详细信息:https://bugzilla.gnome.org/show_bug.cgi?id=720421
最好的方法是使用最新的二进制文件:http://gstreamer.freedesktop.org/data/pkg/ios/1.4.5/