<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] ### 視頻的采集 添加頭文件 ``` #import <AVFoundation/AVFoundation.h> #import <AVKit/AVKit.h> #import <MobileCoreServices/MobileCoreServices.h> ``` 遵守協議 ``` @interface ViewController ()<UINavigationBarDelegate, UIImagePickerControllerDelegate> ``` <UINavigationBarDelegate, UIImagePickerControllerDelegate>是兩個協議。 ` ` 在`@interface ViewController ()`之后定義一個屬性 ``` @property (strong, nonatomic)UIImagePickerController *imagePickerCon; ``` 懶加載 ``` //懶加載 - (UIImagePickerController *)imagePickerCon{ if (!_imagePickerCon) { _imagePickerCon = [[UIImagePickerController alloc]init]; //采集源類型 _imagePickerCon.sourceType = UIImagePickerControllerSourceTypeCamera; //媒體類型 _imagePickerCon.mediaTypes = [NSArray arrayWithObjects:(__bridge NSString*)kUTTypeMovie]; //視頻質量 _imagePickerCon.videoQuality = UIImagePickerControllerQualityTypeHigh; //設置代理 _imagePickerCon.delegate = self; } return _imagePickerCon; } ``` 添加按鈕觸發事件 ``` - (IBAction)pickVideo:(UIButton *)sender { //如果攝像頭可用,從攝像頭采集視頻數據 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { [self presentViewController:self.imagePickerCon animated:YES completion:nil]; } } ``` `UIImagePickerControllerDelegate`,可以從這個協議里找到定義的兩個回調函數 ``` //采集媒體數據完成的回調處理 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<UIImagePickerControllerInfoKey, id> *)info { //獲取媒體類型 NSString *type = info[UIImagePickerControllerMediaType]; //如果是視頻類型 if ([type isEqualToString:(__bridge NSString*)kUTTypeMovie]) { NSURL *mediaUrl = info[UIImagePickerControllerMediaURL]; } //回到主界面 [self dismissViewControllerAnimated:YES completion:nil]; } //采集媒體數據取消的回調處理 - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { NSLog(@"您預警取消了采集視頻"); //回到主界面 [self dismissViewControllerAnimated:YES completion:nil]; } ``` 注意: ``` //回到主界面 [self dismissViewControllerAnimated:YES completion:nil]; 這一句話是代表著視頻錄制完里之后,會有一個回到主界面的按鈕。或者是自動跳轉主界面 ``` ### 視頻的播放 在`@interface ViewController ()`之后定義一個屬性 ``` //播放視頻 @property (strong, nonatomic)AVPlayerViewController *player; ``` ### 視頻文件路徑,播放窗口的大小 懶加載把視頻文件路徑,窗口大小加載進去 ``` - (AVPlayerViewController *)player { if (!_player) { _player = [[AVPlayerViewController alloc]init]; //創建avplayer對象--視頻文件路徑 _player.player = [[AVPlayer alloc]initWithURL:mediaUrl]; //播放窗口大小 //全屏播放 [self presentViewController:self animated:YES completion:nil]; } return _player; } ``` `mediaUrl`最后改為定義到類里,方便播放視頻到時候取到該值 ``` @interface ViewController ()<UINavigationBarDelegate, UIImagePickerControllerDelegate> { NSURL *mediaUrl; } ``` ### 播放視頻文件 添加按鈕觸發事件 ``` - (IBAction)playVideo:(UIButton *)sender { //播放視頻 [self.player.player play]; } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看