前言
本文是《音視頻開發(fā)進(jìn)階指南》一書的2.1章節(jié)的讀書筆記.
搭建iOS項(xiàng)目基礎(chǔ)
使用XCode新建項(xiàng)目工程
通過(guò)CocoPod導(dǎo)入相關(guān)庫(kù)
CocoPod的安裝每年都有不同的方法,可自行到網(wǎng)上搜索最新方案.
podfile文件中導(dǎo)入的庫(kù):
platform :ios, '9.0' #指定系統(tǒng)平臺(tái)
target 'RFAVP' do
pod 'Masonry' #約束框架 , 非必要
pod 'Mantle' # 音視頻框架
pod 'AFNetworking' #網(wǎng)絡(luò)請(qǐng)求框架
end
終端執(zhí)行指令:pod install
安裝庫(kù)
項(xiàng)目增加C++支持
關(guān)于關(guān)于OC 和 C++混編款违,推薦看這篇文章:聊聊你不知道的 Objective-C++[必看]
下面分別是Mp3Encoder.hpp靶剑、Mp3Encoder.cpp捷枯、FirstVC.mm 的創(chuàng)建步驟。
stpe1 創(chuàng)建控制器
快捷鍵: command + n
彈出對(duì)話框
選擇 Cocoa Touch Class ,然后點(diǎn)NEXT,創(chuàng)建一個(gè)新的控制器類
創(chuàng)建FirstVC
控制器完成后,要將FirstVC.m
修改成 FirstVC.mm
step2
快捷鍵: command + n
彈出對(duì)話框
選擇C++ File 創(chuàng)建 :
Mp3Encoder.hpp
和 Mp3Encoder.cpp
下面分別是Mp3Encoder.hpp
苟径、Mp3Encoder.cpp
、FirstVC.mm
目前的代碼涩笤。
Mp3Encoder.hpp
的代碼
#ifndef Mp3Encoder_hpp
#define Mp3Encoder_hpp
#include <stdio.h>
class Mp3Encoder
{
public:
void encode();
};
#endif /* Mp3Encoder_hpp */
Mp3Encoder.cpp
的代碼
#include "Mp3Encoder.hpp"
void Mp3Encoder::encode() {
printf("C++");
}
FirstVC.mm
的代碼
//
// FirstVC.m
// RFAVP
//
// Created by PRF on 2021/1/22.
//
#import "FirstVC.h"
#import <Masonry/Masonry.h>
#import <iostream>
#include "Mp3Encoder.hpp"
#import <AFNetworking.h>
@interface FirstVC ()
@property (nonatomic,strong) UIButton *EncodeBtn;
@end
@implementation FirstVC
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
self.title = @"音視頻進(jìn)階";
[self.EncodeBtn addTarget:self action:@selector(encodeClick:) forControlEvents:UIControlEventTouchUpInside];
}
-(void)encodeClick:(UIButton *)btn{
Mp3Encoder *encoder = new Mp3Encoder();
encoder->encode();
delete encoder;
}
-(UIButton *)EncodeBtn{
if (!_EncodeBtn) {
_EncodeBtn = [UIButton new];
[self.view addSubview:_EncodeBtn];
[_EncodeBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.center.mas_equalTo(0);
make.width.mas_equalTo(100);
make.height.mas_equalTo(50);
}];
_EncodeBtn.backgroundColor = [UIColor blueColor];
[_EncodeBtn setTitle:@"音視頻測(cè)試" forState:UIControlStateNormal];
}
return _EncodeBtn;
}
@end
項(xiàng)目驗(yàn)證
把 FirstVC
修改成項(xiàng)目的第一啟動(dòng)控制器, command + r
運(yùn)行項(xiàng)目, 點(diǎn)擊按鈕,控制臺(tái)能夠正常打印輸出C++
,則表示C++支持成功;