iOS--播放音频、视频(1:AVAudioPlayer 2:MPMoviePlayerViewController)

在iOS中有两种方式可以播放音频视频。

一:AVAudioPlayer。它只能播放本地的音频,不能网络音频(即不能在线播放)MP3

   1:首先要手动导入音频的框架 AVFoundation.framework。(iOS7.0以后,不用在手动导入了,它自动已经包含了此框架

        2:包含头文件    #import<AVFoundation/AVFoundation.h>

参考上几篇文章中的  http://blog.csdn.net/u010165653/article/details/41750771





二:MPMoviePlayerViewController(带VIEW,有视图)MPMoviePlayerController(无视图,默认VIEW的大小为0)它不仅能播放本地音频又可以播放网络音频和视频     注意:它支持的格式并不是很多,所以有些常用的rmvb等格式不支持。

      1:手动导入类库:MediaPlayer.framework  。

      2:包含头文件   #import<MediaPlayer/MediaPlayer.h>

/*
     注意MPMoviePlayerViewController,只支持MP4,MP3
     
     1.问题:系统自带的MPMoviePlayerViewController,当程序进入后台的时候就会自动销毁。如何让其保持状态进入后台前的状态?
     
     原因:当系统进入后台的时候会发出通知:UIApplicationDidEnterBackgroundNotification,而系统的MPMoviePlayerViewController会自动监听该通知,当监听到进入后台的这个通知后,MPMoviePlayerViewController会调用方法销毁。
     
     解决方法:移除通知
     
     [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidEnterBackgroundNotification object:nil];
     
     //说明:移除self监听的名称为UIApplicationDidEnterBackgroundNotification的通知,object参数为空。
        */

AZMyMoviePlayViewController:

#import <MediaPlayer/MediaPlayer.h>

@interface AZMyMoviePlayViewController : MPMoviePlayerViewController

@end

#import "AZMyMoviePlayViewController.h"

@interface AZMyMoviePlayViewController ()

@end

@implementation AZMyMoviePlayViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    
    <span style="color:#ff0000;">//移除程序进入后台的通知</span>
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidEnterBackgroundNotification object:nil];
    
}

#pragma  mark -- 播放界面只支持横屏
-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscape;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

AZRootViewController:

关键代码

 //取出模型
    AZMyVideoModel *video=self.voideListArray[indexPath.row];
    
    NSString *videoUrlStr=[NSString stringWithFormat:@"%@%@",WEBPATH,video.url];
    NSLog(@"%@",videoUrlStr);
    NSURL *url=[NSURL URLWithString:videoUrlStr];
    
    //创建播放视图控制器
    AZMyMoviePlayViewController *playVC=[[AZMyMoviePlayViewController alloc] initWithContentURL:url];
    playVC.navigationItem.title=@"播放界面";
    

    [self.navigationController pushViewController:playVC animated:YES];

iOS--播放音频、视频(1:AVAudioPlayer 2:MPMoviePlayerViewController)_第1张图片 iOS--播放音频、视频(1:AVAudioPlayer 2:MPMoviePlayerViewController)_第2张图片

     

你可能感兴趣的:(mediaplayer)