你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> GStreamer iOS教程1 —— GStreamer連接

GStreamer iOS教程1 —— GStreamer連接

編輯:IOS開發綜合
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

#import 

@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 

@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也是可以的。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved