zoukankan      html  css  js  c++  java
  • 用MPMoviePlayerController做在线音乐播放

    http://blog.csdn.net/x1135768777/article/details/7505903

    MPMoviePlayerController 与AVAudioPlayer有点类似,前者播放视频,后者播放音频,不过也有很大不同,MPMoviePlayerController 可以直接通过远程URL初始化,而AVAudioPlayer则不可以。不过大体上用起来感觉差不多。

    在这之前当然要包含库文件的

    #import <MediaPlayer/MediaPlayer.h>  

    1.创建

    MPMoviePlayerController 类通过一个NSURL来初始化,这个URL可以使本地的,也可以是远程的。初始化需要通过 initWithContentURL 方法来实现:

    下面是一个在线未加密的音乐地址:

    1.  NSString * myURL = [NSString stringWithFormat:

      @"http://202.204.208.83/gangqin/download/music/02/03/02/Track08.mp3"];

      MPMoviePlayerController *moviePlayer = [ [ MPMoviePlayerController alloc]

      initWithContentURL:[NSURLURLWithString:myURL]];//远程

    当然我们也可以从本地读取:

    1. NSString* path =[ NSString stringWithFormat:
    2. @"%@/Documents/Track08.mp3",NSHomeDirectory()];//本地路径  
    3. MPMoviePlayerController *moviePlayer = [ [ MPMoviePlayerController alloc]
    4. initWithContentURL:[NSURL fileURLWithPath:path]];//本地的  

    下面是MPMoviePlayerController与所带的属性

    因为它本身是来播放视频的所以有一些AVAudioPlayer没有的的属性

    二、属性设置 
    1.控制器样式 

    1. moviePlayer.moviewControlMode = MPMovieControlModeDefault;  

    可以使用下列样式: 
    MPMovieControlModeDefault            显示播放/暂停、音量和时间控制 
    MPMovieControlModeVolumeOnly         只显示音量控制 
    MPMovieControlModeHidden             没有控制器 
    2.屏幕宽高比例 

    1. moviePlayer.scallingMode = MPMovieScallingModeAspectFit;  

    你可以使用下列宽高比值: 
    MPMovieScallingModeNone            不做任何缩放 
    MPMovieScallingModeAspectFit       适应屏幕大小,保持宽高比 
    MPMovieScallingModeAspectFill      适应屏幕大小,保持宽高比,可裁剪 
    MPMovieScallingModeFill            充满屏幕,不保持宽高比 
    3.背景色 

    背景色会在电影播放器转入转出时使用,当电影不能充满整个屏幕时,

    也会用来填充空白区域。默认的背景色是黑色,不过你可以使用 UIColor 对象设置backgroundColor属性,来改变背景色: 

    1. moviePlayer.backgroundColor = [UIColor redColor];  

    三、播放和停止电影 
    要播放电影请调用play 方法,电影播放控制器会自动将视图切换到电影播放器并开始播放: 

    1. [ moviePlayer play ];  

    当用户点击Done按钮,或者 stop 方法被调用都会停止 

    1. [ moviePlayer stop ];  

    当电影停止播放后会自动切回播放前应用程序所在的视图。 
    四、通知 
    你的程序可以配置电影播放器在何时候发送通知,包括结束加载内容、技术播放、改变宽高比等。电影播放器会将事件发送到 Cocoa 的通知中心,你可以对其进行配置,指定将这些事件转发到你的应用程序的一个对象。要接收这些通知,需要使用 NSNotificationCenter 类,为电影播放器添加一个观察者(observer): 

    1. NSNotificationCenter* notificationCenter = [NSNotificationCenter defaultCenter];  
    2. [ notificationCenter addObserver:self selector:@selector(moviePlayerPreloadFinish:) name:MPMoviePlayerContentPreloadDidFinishNotification object:moviePlayer ];  

    通知会发到你指定的委托类和目标方法。通知参数让你可以知道是哪个事件触发了委托方法: 

    1. -(void)moviePlayerPreloadDidFinish:(NSNotification*)notification{  
    2.     //添加你的处理代码  
    3. }   

    你会观察到以下通知: 
    MPMoviePlayerContentPreloadDidFinishNotification  
    当电影播放器结束对内容的预加载后发出。因为内容可以在仅加载了一部分的情况下播放,所以这个通知可能在已经播放后才发出。 
    MPMoviePlayerScallingModeDidChangedNotification  
    当用户改变了电影的缩放模式后发出。用户可以点触缩放图标,在全屏播放和窗口播放之间切换。 
    MPMoviePlayerPlaybackDidFinishNotification  
    当电影播放完毕或者用户按下了Done按钮后发出。 

     

     DLog(@"Test ringCell PlayButton");

        NSString *audioURL = [NSStringstringWithFormat:@"http://ring.appvv.com/6ae18c43873523f87cb87fbdcb0d4d1b9a862893.mp3"];

    //    NSString *audioURL = [NSString stringWithFormat:@"http://202.204.208.83/gangqin/download/music/02/03/02/Track08.mp3"];

        MPMoviePlayerController *audioPlayer = [[MPMoviePlayerControlleralloc] initWithContentURL:[NSURLURLWithString:audioURL]];

        [audioPlayer prepareToPlay];

    //    [audioPlayer.view setFrame:CGRectMake(0, 0, 0, 0)];

    //    [self.view addSubview:audioPlayer.view];

        [audioPlayer play];

        DLog(@"play begin ...");

     

     

  • 相关阅读:
    springmvc log4j 配置
    intellij idea maven springmvc 环境搭建
    spring,property not found on type
    intellij idea maven 工程生成可执行的jar
    device eth0 does not seem to be present, delaying initialization
    macos ssh host配置及免密登陆
    centos7 搭建 docker 环境
    通过rest接口获取自增id (twitter snowflake算法)
    微信小程序开发体验
    gitbook 制作 beego 参考手册
  • 原文地址:https://www.cnblogs.com/easonoutlook/p/2642826.html
Copyright © 2011-2022 走看看