91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iOS 短視頻源碼開發MPMoviePlayerController

發布時間:2020-08-15 00:28:58 來源:ITPUB博客 閱讀:239 作者:布谷惠澤 欄目:編程語言


文:布谷惠澤/來源:山東布谷鳥網絡

MPMoviePlayerController 用來播放視頻,在iOS9之后被棄用(iOS9之后蘋果推薦我們使用AVPlayer,AVPlayer相對復雜但靈活),由于APP往往要兼容iOS9之前的版本,所有MPMoviePlayerController還是很重要的。
在我的另一篇文章中分享了一個 基于MPMoviePlayerController 的播放器 ,大家可以看看,目前還不完整。小伙伴們可以關注一下我的簡書。謝謝

MPMoviePlayerController的簡單使用
需要添加這個框架MediaPlayer.framework
#import <MediaPlayer/MediaPlayer.h>


#pragma mark - 本地
    
    NSString* _moviePath=[[NSBundle mainBundle]pathForResource:@"popeye" ofType:@"mp4"];
    self.player=[[MPMoviePlayerController alloc]initWithContentURL:[NSURL fileURLWithPath:_moviePath]];
    [self.view addSubview:self.player.view];
    
    self.player.view.frame=CGRectMake(0, 0, self.view.frame.size.width, CGRectGetWidth(self.view.frame)*(9.0/16.0));
    self.player.movieSourceType = MPMovieSourceTypeFile;// 播放本地視頻時需要這句
//    self.player.controlStyle = MPMovieControlStyleNone;// 不需要進度條
    self.player.shouldAutoplay = YES;// 是否自動播放(默認為YES)
//    self.player.scalingMode=MPMovieScalingModeAspectFill;
    [self.player prepareToPlay];//緩存
//    [self.player play];//可以不加這句


#pragma mark - 網絡
 
    NSURL* url = [NSURL URLWithString:@"https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"];
    _player = [[MPMoviePlayerController alloc] initWithContentURL:url];
    [self.view addSubview:self.player.view];
 
    self.player.view.frame=CGRectMake(0, 0, self.view.frame.size.width, CGRectGetWidth(self.view.frame)*(9.0/16.0));
    [self.player prepareToPlay];
    [self.player play];


#pragma mark - 直播
    NSURL* url = [NSURL URLWithString:@"http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8"];
    _player = [[MPMoviePlayerController alloc] initWithContentURL:url];
    [self.view addSubview:self.player.view];
    
    self.player.view.frame=CGRectMake(0, 0, self.view.frame.size.width, CGRectGetWidth(self.view.frame)*(9.0/16.0));
    self.player.controlStyle=MPMovieSourceTypeStreaming;//直播
    [self.player prepareToPlay];
//    [self.player play];
MPMoviePlayerController提供了很多通知,這里我就簡單的監聽2個。我們可以通過監聽到的信息做相應的處理。
#pragma mark - Notification
    
    //監聽視頻播放結束
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(endPlay) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
    
    //監聽當前視頻播放狀態
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(loadStateDidChange:) name:MPMoviePlayerLoadStateDidChangeNotification object:nil];
 
#pragma mark - Notification function
 
-(void)endPlay
{
    NSLog(@"播放結束");
}
 
-(void)loadStateDidChange:(NSNotification*)sender
{
    switch (self.player.loadState) {
        case MPMovieLoadStatePlayable:
        {
            NSLog(@"加載完成,可以播放");
        }
            break;
        case MPMovieLoadStatePlaythroughOK:
        {
            NSLog(@"緩沖完成,可以連續播放");
        }
            break;
        case MPMovieLoadStateStalled:
        {
            NSLog(@"緩沖中");
        }
            break;
        case MPMovieLoadStateUnknown:
        {
            NSLog(@"未知狀態");
        }
            break;
        default:
            break;
    }
}
 
#pragma mark - dealloc
 
- (void)dealloc
{
    [[NSNotificationCenter defaultCenter]removeObserver:self];
}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

祁门县| 子洲县| 翁源县| 阜康市| 浠水县| 定襄县| 聂荣县| 武冈市| 葫芦岛市| 娱乐| 菏泽市| 扶绥县| 巴青县| 大渡口区| 淮滨县| 定陶县| 景谷| 临洮县| 济阳县| 家居| 宝丰县| 平定县| 宁陕县| 镇赉县| 定襄县| 广德县| 雷波县| 托克逊县| 凤台县| 麻栗坡县| 闻喜县| 友谊县| 峡江县| 邓州市| 成武县| 都昌县| 婺源县| 宜城市| 扬中市| 江山市| 密云县|