GStreamer iOS教程1 —— GStreamer连接
2013-12-23 15:00
337 查看
GStreamer是相当高大上的一个流媒体应用程序开发框架,目前中文的资料不多,自己在学习中诞生了一个把官方的Tutorial翻译成中文的一个念头,一方面可以推广这个东西,让其他有兴趣的程序员快速上手,另一方面也能让自己得到锻炼。在这里立个碑,希望自己能坚持下去。
术语方面我会采用英文表述,方便交流和沟通。下面是第一篇的正文:
1. 目标
第一个iOS的教程非常简单,仅仅是获得GStreamer的版本并在界面上显示出来。主要是演示一下xCode下如何使用GStreamer的库。
2. Hello GStreamer!
这个项目的代码是使用“GStreamer Single View Application template”来生成的,具体代码可以在安装包里找到。这个View里面仅仅包含一个用来显示GStreamer版本的UILabel控件。
3. UI界面
UI方面使用storyboards来显示一个singleView,其中包括一个居中的UILabel。在ViewController的代码里面包含一个IBOutlet的label变量。
ViewController.h
4. GStreamer后端
所有的GStreamer代码都维护一个ObjC的类——GStreamerBackend。在后续的教程里面这个类会逐渐包含更多内容,目前它仅仅包含一个获得GStreamer版本的方法。
GStreamerBackend是用ObjC写的,所以需要注意一下C和ObjC之间的转化问题(译者注:GStreamer是基于C写就的)。有了这个类会让UI调用起来更方便,有点类似于Android版本上的JNI代码所起到的作用。
GStreamerBackend.m
5. 视图
这个ViewController实例化了GStreamerBackend类,并且获得GStreamer的版本在Label上显示出来,就这么简单!
ViewController.m
6. 结论
第一个iOS教程结束了。主要是为了说明因为C和ObjC的兼容,GStreamer支持iOS的应用和支持桌面应用一样简单。为了编码的清晰增加了一个ObjC的封装(GStreamerBackend类),但在应用中直接调用GStreamer的framework也是可以的。
术语方面我会采用英文表述,方便交流和沟通。下面是第一篇的正文:
1. 目标
第一个iOS的教程非常简单,仅仅是获得GStreamer的版本并在界面上显示出来。主要是演示一下xCode下如何使用GStreamer的库。
2. Hello GStreamer!
这个项目的代码是使用“GStreamer Single View Application template”来生成的,具体代码可以在安装包里找到。这个View里面仅仅包含一个用来显示GStreamer版本的UILabel控件。
3. UI界面
UI方面使用storyboards来显示一个singleView,其中包括一个居中的UILabel。在ViewController的代码里面包含一个IBOutlet的label变量。
ViewController.h
#import <UIKit/UIKit.h> @interface ViewController : UIViewController { IBOutlet UILabel *label; } @property (retain,nonatomic) UILabel *label; @end
4. GStreamer后端
所有的GStreamer代码都维护一个ObjC的类——GStreamerBackend。在后续的教程里面这个类会逐渐包含更多内容,目前它仅仅包含一个获得GStreamer版本的方法。
GStreamerBackend是用ObjC写的,所以需要注意一下C和ObjC之间的转化问题(译者注:GStreamer是基于C写就的)。有了这个类会让UI调用起来更方便,有点类似于Android版本上的JNI代码所起到的作用。
GStreamerBackend.m
#import "GStreamerBackend.h" #include <gst/gst.h> @implementation GStreamerBackend -(NSString*) getGStreamerVersion { char *version_utf8 = gst_version_string(); NSString *version_string = [NSString stringWithUTF8String:version_utf8]; g_free(version_utf8); return version_string; } @end
5. 视图
这个ViewController实例化了GStreamerBackend类,并且获得GStreamer的版本在Label上显示出来,就这么简单!
ViewController.m
#import "ViewController.h" #import "GStreamerBackend.h" @interface ViewController () { GStreamerBackend *gst_backend; } @end @implementation ViewController @synthesize label; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. gst_backend = [[GStreamerBackend alloc] init]; label.text = [NSString stringWithFormat:@"Welcome to %@!", [gst_backend getGStreamerVersion]]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
6. 结论
第一个iOS教程结束了。主要是为了说明因为C和ObjC的兼容,GStreamer支持iOS的应用和支持桌面应用一样简单。为了编码的清晰增加了一个ObjC的封装(GStreamerBackend类),但在应用中直接调用GStreamer的framework也是可以的。
相关文章推荐
- GStreamer iOS教程3 —— 视频
- iOS 11开发教程(九)iOS11数据线连接真机测试
- 【教程】ios端利用微软RD Client APP远程连接PC(外网)
- GStreamer iOS教程2 —— 运行pipeline
- GStreamer iOS教程4——一个基础的播放器
- GStreamer iOS教程5——一个完整的播放器
- iOS 11开发教程(九)iOS11数据线连接真机测试
- iOS 10.2 越狱更新到yalu102 beta7,很稳定,很多注意事项及修复ssh和scp连接教程
- iOS 11开发教程(九)iOS11数据线连接真机测试
- eclipse连接sql server 图文教程
- iOS中 语音识别功能/语音转文字教程详解 韩俊强的博客
- 【GStreamer开发】GStreamer基础教程01——Hello World
- iOS开发教程:Storyboard全解析-第一部分
- 创建一个简单的 iOS 5 iPhone App 教程(1/3)
- iOS开发零基础教程之生成git所需的SSH keys
- iOS CoreAnimation系列教程
- 新手求介绍ios开发视屏教程
- Red Gate系列之八 SQL Connect 1.1.1.19 Edition 数据库连接及操作工具 完全破解+使用教程
- iOS AutoLayout自动布局中级开发教程(6)-淘宝客户端iPhone 6/6 Plus 设计·适配方案
- iOS连接外设的几种方式