自帶的錄屏功能有限,想要更多錄屏相關(guān)的功能的話,可以使用【迅捷錄屏大師】APP,一款專業(yè)的第三方錄屏軟件,功能豐富操作簡(jiǎn)單,而且還自帶視頻剪輯功能。
10年積累的成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有阿巴嘎免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
迅捷錄屏大師 - 手機(jī)錄屏軟件,好用的手機(jī)屏幕錄制APP
進(jìn)入軟件首頁(yè),可以對(duì)視頻錄制進(jìn)行一些設(shè)置,包括錄制方向、畫(huà)質(zhì)模式、錄制音量。
錄制方向包括橫屏錄制、豎屏錄制和自動(dòng)識(shí)別,一般是都是使用自動(dòng)識(shí)別,看到有人想固定橫屏或者是豎屏,那你直接選擇一個(gè)方向就行,下次需要換方向重新選一下就行了。
用itools錄屏大師。
步驟:
1、打開(kāi)【蘋(píng)果錄屏專家】,根據(jù)需求選擇【橫屏錄制】或【豎屏錄制】;
2、按照指示打開(kāi)設(shè)備控制中心,點(diǎn)擊【AirPlay-RecScreen-完成】即可開(kāi)始錄屏,點(diǎn)擊屏幕上【結(jié)束錄制】即可結(jié)束錄屏;
3、在頁(yè)面下方點(diǎn)擊【視頻】,可以看到已成功錄制的視頻,點(diǎn)擊視頻可進(jìn)行剪輯(拖動(dòng)白色浮標(biāo)選擇視頻封面)和保存以及播放視頻等。
注意:除了錄屏之外,蘋(píng)果錄屏專家(RecScreen)還支持【直播】功能,不過(guò)該功能目前需要向開(kāi)發(fā)者申請(qǐng)權(quán)限。
在itools的工具箱里點(diǎn)擊設(shè)備管理后找到并使用蘋(píng)果錄屏大師。上劃手機(jī)狀態(tài)欄選擇Airplay,點(diǎn)擊后選擇對(duì)應(yīng)Airplay鏡像,電腦會(huì)出現(xiàn)手機(jī)畫(huà)面。開(kāi)啟PC端的直播姬功能,把【游戲源】里的的Airplay進(jìn)程添加進(jìn)去。選擇要直播的內(nèi)容,使用PC直播姬開(kāi)始一鍵直播。
B站
早期是一個(gè)ACG(動(dòng)畫(huà)、漫畫(huà)、游戲)內(nèi)容創(chuàng)作與分享的視頻網(wǎng)站。經(jīng)過(guò)十年多的發(fā)展,圍繞用戶、創(chuàng)作者和內(nèi)容,構(gòu)建了一個(gè)源源不斷產(chǎn)生優(yōu)質(zhì)內(nèi)容的生態(tài)系統(tǒng)。
B站已經(jīng)涵蓋7000多個(gè)興趣圈層的多元文化社區(qū),曾獲得QuestMobile研究院評(píng)選的“Z世代偏愛(ài)APP”和“Z世代偏愛(ài)泛娛樂(lè)APP”兩項(xiàng)榜單第一名并入選“BrandZ”報(bào)告2019最具價(jià)值中國(guó)品牌100強(qiáng)。
北京時(shí)間2021年11月17日,嗶哩嗶哩公布了截至2021年9月30日的第三季度未經(jīng)審計(jì)的財(cái)務(wù)報(bào)告。財(cái)報(bào)顯示,B站三季度營(yíng)收達(dá)52.1億元人民幣,同比增長(zhǎng)61%,各項(xiàng)社區(qū)運(yùn)營(yíng)數(shù)據(jù)再創(chuàng)新高。
1.創(chuàng)建AVCaptureSession對(duì)象
2.獲取AVCaptureDevicel錄像設(shè)備(攝像頭),錄音設(shè)備(麥克風(fēng)),注意不具備輸入數(shù)據(jù)功能,只是用來(lái)調(diào)節(jié)硬件設(shè)備的配置。
3.根據(jù)音頻/視頻硬件設(shè)備(AVCaptureDevice)創(chuàng)建音頻/視頻硬件輸入數(shù)據(jù)對(duì)象(AVCaptureDeviceInput),專門(mén)管理數(shù)據(jù)輸入。
4.創(chuàng)建視頻輸出數(shù)據(jù)管理對(duì)象(AVCaptureVideoDataOutput),并且設(shè)置樣品緩存代理(setSampleBufferDelegate)就可以通過(guò)它拿到采集到的視頻數(shù)據(jù)
5.創(chuàng)建音頻輸出數(shù)據(jù)管理對(duì)象(AVCaptureAudioDataOutput),并且設(shè)置樣品緩存代理(setSampleBufferDelegate)就可以通過(guò)它拿到采集到的音頻數(shù)據(jù)
6.將數(shù)據(jù)輸入對(duì)象AVCaptureDeviceInput、數(shù)據(jù)輸出對(duì)象AVCaptureOutput添加到媒體會(huì)話管理對(duì)象AVCaptureSession中,就會(huì)自動(dòng)讓音頻輸入與輸出和視頻輸入與輸出產(chǎn)生連接.
7.創(chuàng)建視頻預(yù)覽圖層AVCaptureVideoPreviewLayer并指定媒體會(huì)話,添加圖層到顯示容器layer中
8.啟動(dòng)AVCaptureSession,只有開(kāi)啟,才會(huì)開(kāi)始輸入到輸出數(shù)據(jù)流傳輸。
// 捕獲音視頻
- (void)setupCaputureVideo
{
// 1.創(chuàng)建捕獲會(huì)話,必須要強(qiáng)引用,否則會(huì)被釋放
AVCaptureSession *captureSession = [[AVCaptureSession alloc] init];
_captureSession = captureSession;
// 2.獲取攝像頭設(shè)備,默認(rèn)是后置攝像頭
AVCaptureDevice *videoDevice = [self getVideoDevice:AVCaptureDevicePositionFront];
// 3.獲取聲音設(shè)備
AVCaptureDevice *audioDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio];
// 4.創(chuàng)建對(duì)應(yīng)視頻設(shè)備輸入對(duì)象
AVCaptureDeviceInput *videoDeviceInput = [AVCaptureDeviceInput deviceInputWithDevice:videoDevice error:nil];
_currentVideoDeviceInput = videoDeviceInput;
// 5.創(chuàng)建對(duì)應(yīng)音頻設(shè)備輸入對(duì)象
AVCaptureDeviceInput *audioDeviceInput = [AVCaptureDeviceInput deviceInputWithDevice:audioDevice error:nil];
// 6.添加到會(huì)話中
// 注意“最好要判斷是否能添加輸入,會(huì)話不能添加空的
// 6.1 添加視頻
if ([captureSession canAddInput:videoDeviceInput]) {
[captureSession addInput:videoDeviceInput];
}
// 6.2 添加音頻
if ([captureSession canAddInput:audioDeviceInput]) {
[captureSession addInput:audioDeviceInput];
}
// 7.獲取視頻數(shù)據(jù)輸出設(shè)備
AVCaptureVideoDataOutput *videoOutput = [[AVCaptureVideoDataOutput alloc] init];
// 7.1 設(shè)置代理,捕獲視頻樣品數(shù)據(jù)
// 注意:隊(duì)列必須是串行隊(duì)列,才能獲取到數(shù)據(jù),而且不能為空
dispatch_queue_t videoQueue = dispatch_queue_create("Video Capture Queue", DISPATCH_QUEUE_SERIAL);
[videoOutput setSampleBufferDelegate:self queue:videoQueue];
if ([captureSession canAddOutput:videoOutput]) {
[captureSession addOutput:videoOutput];
}
// 8.獲取音頻數(shù)據(jù)輸出設(shè)備
AVCaptureAudioDataOutput *audioOutput = [[AVCaptureAudioDataOutput alloc] init];
// 8.2 設(shè)置代理,捕獲視頻樣品數(shù)據(jù)
// 注意:隊(duì)列必須是串行隊(duì)列,才能獲取到數(shù)據(jù),而且不能為空
dispatch_queue_t audioQueue = dispatch_queue_create("Audio Capture Queue", DISPATCH_QUEUE_SERIAL);
[audioOutput setSampleBufferDelegate:self queue:audioQueue];
if ([captureSession canAddOutput:audioOutput]) {
[captureSession addOutput:audioOutput];
}
// 9.獲取視頻輸入與輸出連接,用于分辨音視頻數(shù)據(jù)
_videoConnection = [videoOutput connectionWithMediaType:AVMediaTypeVideo];
// 10.添加視頻預(yù)覽圖層
AVCaptureVideoPreviewLayer *previedLayer = [AVCaptureVideoPreviewLayer layerWithSession:captureSession];
previedLayer.frame = [UIScreen mainScreen].bounds;
[self.view.layer insertSublayer:previedLayer atIndex:0];
_previedLayer = previedLayer;
// 11.啟動(dòng)會(huì)話
[captureSession startRunning];
}
// 指定攝像頭方向獲取攝像頭
- (AVCaptureDevice *)getVideoDevice:(AVCaptureDevicePosition)position
{
NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
for (AVCaptureDevice *device in devices) {
if (device.position == position) {
return device;
}
}
return nil;
}
#pragma mark - AVCaptureVideoDataOutputSampleBufferDelegate
// 獲取輸入設(shè)備數(shù)據(jù),有可能是音頻有可能是視頻
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
{
if (_videoConnection == connection) {
NSLog(@"采集到視頻數(shù)據(jù)");
} else {
NSLog(@"采集到音頻數(shù)據(jù)");
}
}
視頻采集額外功能一(切換攝像頭)
切換攝像頭步驟
1.獲取當(dāng)前視頻設(shè)備輸入對(duì)象
2.判斷當(dāng)前視頻設(shè)備是前置還是后置
3.確定切換攝像頭的方向
4.根據(jù)攝像頭方向獲取對(duì)應(yīng)的攝像頭設(shè)備
5.創(chuàng)建對(duì)應(yīng)的攝像頭輸入對(duì)象
6.從會(huì)話中移除之前的視頻輸入對(duì)象
7.添加新的視頻輸入對(duì)象到會(huì)話中
// 切換攝像頭
- (IBAction)toggleCapture:(id)sender {
// 獲取當(dāng)前設(shè)備方向
AVCaptureDevicePosition curPosition = _currentVideoDeviceInput.device.position;
// 獲取需要改變的方向
AVCaptureDevicePosition togglePosition = curPosition == AVCaptureDevicePositionFront?AVCaptureDevicePositionBack:AVCaptureDevicePositionFront;
// 獲取改變的攝像頭設(shè)備
AVCaptureDevice *toggleDevice = [self getVideoDevice:togglePosition];
// 獲取改變的攝像頭輸入設(shè)備
AVCaptureDeviceInput *toggleDeviceInput = [AVCaptureDeviceInput deviceInputWithDevice:toggleDevice error:nil];
// 移除之前攝像頭輸入設(shè)備
[_captureSession removeInput:_currentVideoDeviceInput];
// 添加新的攝像頭輸入設(shè)備
[_captureSession addInput:toggleDeviceInput];
// 記錄當(dāng)前攝像頭輸入設(shè)備
_currentVideoDeviceInput = toggleDeviceInput;
}
視頻采集額外功能二(聚焦光標(biāo))
聚焦光標(biāo)步驟
1.監(jiān)聽(tīng)屏幕的點(diǎn)擊
2.獲取點(diǎn)擊的點(diǎn)位置,轉(zhuǎn)換為攝像頭上的點(diǎn),必須通過(guò)視頻預(yù)覽圖層(AVCaptureVideoPreviewLayer)轉(zhuǎn)
3.設(shè)置聚焦光標(biāo)圖片的位置,并做動(dòng)畫(huà)
4.設(shè)置攝像頭設(shè)備聚焦模式和曝光模式(注意:這里設(shè)置一定要鎖定配置lockForConfiguration,否則報(bào)錯(cuò))
// 點(diǎn)擊屏幕,出現(xiàn)聚焦視圖
- (void)touchesBegan:(NSSetUITouch * *)touches withEvent:(UIEvent *)event
{
// 獲取點(diǎn)擊位置
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self.view];
// 把當(dāng)前位置轉(zhuǎn)換為攝像頭點(diǎn)上的位置
CGPoint cameraPoint = [_previedLayer captureDevicePointOfInterestForPoint:point];
// 設(shè)置聚焦點(diǎn)光標(biāo)位置
[self setFocusCursorWithPoint:point];
// 設(shè)置聚焦
[self focusWithMode:AVCaptureFocusModeAutoFocus exposureMode:AVCaptureExposureModeAutoExpose atPoint:cameraPoint];
}
/**
* 設(shè)置聚焦光標(biāo)位置
*
* @param point 光標(biāo)位置
*/
-(void)setFocusCursorWithPoint:(CGPoint)point{
self.focusCursorImageView.center=point;
self.focusCursorImageView.transform=CGAffineTransformMakeScale(1.5, 1.5);
self.focusCursorImageView.alpha=1.0;
[UIView animateWithDuration:1.0 animations:^{
self.focusCursorImageView.transform=CGAffineTransformIdentity;
} completion:^(BOOL finished) {
self.focusCursorImageView.alpha=0;
}];
}
/**
* 設(shè)置聚焦
*/
-(void)focusWithMode:(AVCaptureFocusMode)focusMode exposureMode:(AVCaptureExposureMode)exposureMode atPoint:(CGPoint)point{
AVCaptureDevice *captureDevice = _currentVideoDeviceInput.device;
// 鎖定配置
[captureDevice lockForConfiguration:nil];
// 設(shè)置聚焦
if ([captureDevice isFocusModeSupported:AVCaptureFocusModeAutoFocus]) {
[captureDevice setFocusMode:AVCaptureFocusModeAutoFocus];
}
if ([captureDevice isFocusPointOfInterestSupported]) {
[captureDevice setFocusPointOfInterest:point];
}
// 設(shè)置曝光
if ([captureDevice isExposureModeSupported:AVCaptureExposureModeAutoExpose]) {
[captureDevice setExposureMode:AVCaptureExposureModeAutoExpose];
}
if ([captureDevice isExposurePointOfInterestSupported]) {
[captureDevice setExposurePointOfInterest:point];
}
// 解鎖配置
[captureDevice unlockForConfiguration];
}