前言
本文是《音视频开发进阶指南》一书的2.1章节的读书笔记.
搭建iOS项目基础
使用XCode新建项目工程
通过CocoPod导入相关库
CocoPod的安装每年都有不同的方法,可自行到网上搜索最新方案.
podfile文件中导入的库:
platform :ios, '9.0' #指定系统平台
target 'RFAVP' do
pod 'Masonry' #约束框架 , 非必要
pod 'Mantle' # 音视频框架
pod 'AFNetworking' #网络请求框架
end
终端执行指令:pod install
安装库
项目增加C++支持
关于关于OC 和 C++混编,推荐看这篇文章:聊聊你不知道的 Objective-C++[必看]
下面分别是Mp3Encoder.hpp、Mp3Encoder.cpp、FirstVC.mm 的创建步骤。
stpe1 创建控制器
快捷键: command + n
弹出对话框
选择 Cocoa Touch Class ,然后点NEXT,创建一个新的控制器类
创建FirstVC
控制器完成后,要将FirstVC.m
修改成 FirstVC.mm
step2
快捷键: command + n
弹出对话框
选择C++ File 创建 :
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 = @"音视频进阶";
[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:@"音视频测试" forState:UIControlStateNormal];
}
return _EncodeBtn;
}
@end
项目验证
把 FirstVC
修改成项目的第一启动控制器, command + r
运行项目, 点击按钮,控制台能够正常打印输出C++
,则表示C++支持成功;