zoukankan      html  css  js  c++  java
  • IOS 播放音频流媒体

    #pragma mark - 加载播放数据

    - (void)loadData:(NSString *)musicUrl

    {

        NSURL *playURL = [NSURL URLWithString:musicUrl];

        self.playerItem = [AVPlayerItem playerItemWithURL:playURL];

                

        //创建单利对象

        self.playStationDetailsManager = [StationDetailsManager defaultManager];

        

        [_playStationDetailsManager.avPlayer replaceCurrentItemWithPlayerItem:self.playerItem];

        [self.playerItem addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew context:nil];//监听status属性

       

        //添加音乐播放结束通知

        [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(stopPlay) name:AVPlayerItemDidPlayToEndTimeNotification object:self.playerItem];

        

        //进入就播放

        [_playStationDetailsManager.avPlayer play];

        

    }

    #pragma mark 设置监听歌曲的方法,并进行页面赋值

    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context

    {

        AVPlayerItem *playerItem = (AVPlayerItem *)object;

        if ([keyPath isEqualToString:@"status"]) {

            //准备播放

            if ([playerItem status] == AVPlayerStatusReadyToPlay) {

                

                CMTime duration = self.playerItem.duration;//获取MP3的总长度

                self.playView.planSlider.maximumValue = CMTimeGetSeconds(duration);//设置滑竿的最大值

                NSLog(@"%f",CMTimeGetSeconds(duration));

                [self monitoringPlayback:self.playerItem];//监听播放的状态

            }else if ([playerItem status] == AVPlayerStatusFailed){

                //加载失败

                NSLog(@"加载失败");

            }

        }

    }

  • 相关阅读:
    静态方法中访问类的实例成员
    静态初始化块
    Java字段初始化的规律
    java中函数重载
    哈姆雷特观后感 一把辛酸泪
    枚举
    验证码
    四则运算
    JAVA输出中+号的作用以及如何使用
    dev控件ASPxComboBox设置ReadOnly="true"后
  • 原文地址:https://www.cnblogs.com/iOS-mt/p/4325471.html
Copyright © 2011-2022 走看看