国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - IOS - 淺析iOS中視頻播放的幾種方案

淺析iOS中視頻播放的幾種方案

2021-01-24 15:11wg_hjl IOS

還記得剛學iOS的時候嗎?那個時候驚訝于各種牛逼的功能只需要幾句簡單的代碼就可以完成。視頻播放也是這樣,IOS中視頻播放有好幾種方式,這篇文章就給大家整理這幾種方案優缺點與實現過程。

1、AVPlayer

(1) 優缺點

優點:可以自定義 UI, 進行控制

缺點:單純的播放,沒有控制 UI(進度,暫停,播放等按鈕),而且如果要顯示播放界面, 需要借助AVPlayerLayer, 添加圖層到需要展示的圖層上

(2)實現遠程視頻播放

實現播放功能(只有聲音)

1.導入框架

?
1
#import <AVFoundation/AVFoundation.h>

2.通過遠程 URL 創建 AVPlayer 對象

?
1
2
NSURL *remoteURL = [NSURL URLWithString:@"http://v1.mukewang.com/57de8272-38a2-4cae-b734-ac55ab528aa8/L.mp4"];
 _player = [AVPlayer playerWithURL:remoteURL];

3.開始播放

?
1
[self.player play];

存在問題:只能播放聲音, 看不到圖像

解決方案: 需要借助AVPlayerLayer對象, 根據player創建圖層, 添加到視圖上

顯示視頻

4.根據 player 對象創建 AVPlayerLayer

?
1
AVPlayerLayer *layer = [AVPlayerLayer playerLayerWithPlayer:self.player];

5.設置 layer 的 frame

?
1
layer.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height * 9 / 16);

6.將layer 添加到需要展示的 View 的 layer 上

?
1
[self.view.layer addSublayer:layer];

2、MPMoviePlayerController

(1)優缺點

優點:自帶的播放控制UI(進度條,上一個,下一個,暫停), 不需要手動添加

缺點:不能自定義UI

        只能將此控制器視圖添加到其他視圖進行展示

        此控制器不是視圖控制器, 不能直接彈出

        播放器的播放狀態, 是通過通知的方式告訴外界

(2)視頻播放實現步驟

1.導入框架

?
1
#import <MediaPlayer/MediaPlayer.h>

2.根據URL, 創建控制器 MPMoviePlayerController

?
1
2
NSURL *remoteURL = [NSURL URLWithString:@"http://v1.mukewang.com/57de8272-38a2-4cae-b734-ac55ab528aa8/L.mp4"];
 _moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:remoteURL];

3.設置播放視圖frame, 添加到需要展示的視圖上

?
1
2
3
4
5
6
// 設置播放視圖的frame
self.moviePlayer.view.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height * 9 / 16);
// 設置播放視圖控制樣式
self.moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
// 添加播放視圖到要顯示的視圖
[self.view addSubview:self.moviePlayer.view];

4.播放

?
1
[self.moviePlayer play];

3、MPMoviePlayerViewController

(1)優缺點

優點:自帶的播放控制UI, 不需要手動添加

       此控制器是視圖控制器, 可以彈出, 可以壓棧

       也可以手動調整視圖大小, 添加到其他視圖上

缺點:不能自定義UI

(2)視頻播放實現步驟

1.導入框架

?
1
#import <MediaPlayer/MediaPlayer.h>

2.根據URL, 創建控制器 MPMoviePlayerViewController

?
1
2
NSURL *remoteURL = [NSURL URLWithString:@"http://v1.mukewang.com/57de8272-38a2-4cae-b734-ac55ab528aa8/L.mp4"];
 _playerVC = [[MPMoviePlayerViewController alloc] initWithContentURL:remoteURL];

3.直接模態彈出該控制器(或者: 設置播放視圖frame, 添加到需要展示的視圖上)

?
1
2
3
[self presentViewController:self.playerVC animated:YES completion:^{
   [self.playerVC.moviePlayer play];
 }];

4.播放

?
1
[self.playerVC.moviePlayer play];

4、針對于第2種和第3種實現方案, 在iOS9.0之后, 統一使用AVPlayerViewController

(1)優缺點

優點:自帶的播放控制UI, 不需要手動添加

        此控制器是視圖控制器, 可以彈出, 可以壓棧 

       也可以手動調整視圖大小, 添加到其他視圖上

缺點:不能自定義UI

(2)視頻播放實現步驟

1.導入框架

?
1
2
#import <AVFoundation/AVFoundation.h>
#import <AVKit/AVKit.h>

2.根據URL創建AVPlayer

?
1
2
NSURL *remoteUrl = [NSURL URLWithString:@"http://v1.mukewang.com/57de8272-38a2-4cae-b734-ac55ab528aa8/L.mp4"];
AVPlayer *player = [AVPlayer playerWithURL:remoteUrl];

3.根據AVPlayer, 創建AVPlayerViewController控制器  

?
1
2
_playerVc = [[AVPlayerViewController alloc] init];
_playerVc.player = player;

4.設置播放視圖frame, 添加到需要展示的視圖上

?
1
2
self.playerVc.view.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height * 9 / 16);
[self.view addSubview:self.playerVc.view];

5.播放

?
1
[self.playerVc.player play];

步驟4和步驟5的合并:

?
1
[self presentViewController:self.playerVc animated:YES completion:nil];

總結

以上就是關于iOS中視頻播放的全部內容,希望本文的內容對大家學習或者開發IOS能有所幫助。

原文鏈接:http://www.jianshu.com/p/b2c9e1e5a642

延伸 · 閱讀

精彩推薦
  • IOSiOS開發技巧之狀態欄字體顏色的設置方法

    iOS開發技巧之狀態欄字體顏色的設置方法

    有時候我們需要根據不同的背景修改狀態欄字體的顏色,下面這篇文章主要給大家介紹了關于iOS開發技巧之狀態欄字體顏色的設置方法,文中通過示例代碼...

    夢想家-mxj8922021-05-10
  • IOSiOS開發之視圖切換

    iOS開發之視圖切換

    在iOS開發中視圖的切換是很頻繁的,獨立的視圖應用在實際開發過程中并不常見,除非你的應用足夠簡單。在iOS開發中常用的視圖切換有三種,今天我們將...

    執著丶執念5282021-01-16
  • IOSiOS實現控制屏幕常亮不變暗的方法示例

    iOS實現控制屏幕常亮不變暗的方法示例

    最近在工作中遇到了要將iOS屏幕保持常亮的需求,所以下面這篇文章主要給大家介紹了關于利用iOS如何實現控制屏幕常亮不變暗的方法,文中給出了詳細的...

    隨風13332021-04-02
  • IOSiOS中MD5加密算法的介紹和使用

    iOS中MD5加密算法的介紹和使用

    MD5加密是最常用的加密方法之一,是從一段字符串中通過相應特征生成一段32位的數字字母混合碼。對輸入信息生成唯一的128位散列值(32個字符)。這篇文...

    LYSNote5432021-02-04
  • IOSiOS中UILabel實現長按復制功能實例代碼

    iOS中UILabel實現長按復制功能實例代碼

    在iOS開發過程中,有時候會用到UILabel展示的內容,那么就設計到點擊UILabel復制它上面展示的內容的功能,也就是Label長按復制功能,下面這篇文章主要給大...

    devilx12792021-04-02
  • IOSiOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    這篇文章主要介紹了iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果的相關資料,需要的朋友可以參考下...

    jiangamh8882021-01-11
  • IOSiOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)

    iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和

    這篇文章主要介紹了iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)的相關資料,需要的朋友可以參考下...

    CodingFire13652021-02-26
  • IOS詳解iOS中多個網絡請求的同步問題總結

    詳解iOS中多個網絡請求的同步問題總結

    這篇文章主要介紹了詳解iOS中多個網絡請求的同步問題總結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    liang199111312021-03-15
主站蜘蛛池模板: 亚洲精美视频 | 黄色a一级电影 | 色吧一区 | 精品乱子伦一区二区三区 | 美女视频一区 | 日韩综合网 | 中文字幕在线视频第一页 | 欧美成人激情视频 | 第一色网站 | 国产精品久久久久久久久久新婚 | 国产精品免费一区二区三区 | 亚洲电影在线观看 | 婷婷色国产偷v国产偷v小说 | 在线免费av观看 | bxbx成人精品一区二区三区 | 自拍偷拍专区 | 深夜网址| www.av在线播放| 美女午夜影院 | 亚洲一区观看 | 国外精品久久久蜜桃免费全文阅读 | 国产高清精品在线 | 欧美伊人 | av免费的| 在线视频 91| 欧美成人免费 | 欧美精品一区二区三区在线 | 一级毛片免费播放 | 亚洲人一区二区 | 一区二区三区 在线 | www.you日本| 97国产精品 | 在线午夜 | 精品视频一区二区三区 | 国产一区二区三区撒尿在线 | 久久精品国产视频 | 亚洲第一成人久久网站 | 久久综合亚洲 | 久久精品国产v日韩v亚洲 | 麻豆网址| 国产精品欧美一区二区三区不卡 |