zoukankan      html  css  js  c++  java
  • 音频播放

    static AudioPlayerView *_audioPlayerView = nil;

    @implementation AudioPlayerView

    - (id)initWithFrame:(CGRect)frame

    {

        self = [super initWithFrame:frame];

        if (self) {        

        }

        returnself;

    }

    - (void)playerWithStringUrl:(NSString *)url

    {

        //如果正在播放同一种广播就继续播放

        if (self.player.playing && [url isEqualToString:self.palyerUrl]) {

            return;

        }

        //如果没有正在播放同一种广播就重新开始播放

        

        if (self.player && !self.player.playing &&  [url isEqualToString:self.palyerUrl]) {

            return;

        }

        self.palyerUrl = url;

        

        NSError * error;

    //音频绝对地址

    //生成音乐播放器,AVAudioPlayer

        NSURL *audioURL = [NSURL fileURLWithPath:url];

        AVAudioPlayer *tempPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioURL error:&error];

        self.player = tempPlayer;

        self.player.delegate = self;//播放器代理

        self.player.meteringEnabled = YES;//计量打开

        [tempPlayer release];

    }

    //单例

    + (AudioPlayerView *)shareAudioPlayerView

    {

        UIWindow *window = [UIApplicationsharedApplication].keyWindow;

        if (!window){

            window = [[UIApplicationsharedApplication].windowsobjectAtIndex:0];

        }

        @synchronized(self){//单元的写法

            if (_audioPlayerView == nil) {

                _audioPlayerView = [[AudioPlayerViewalloc] initWithFrame:CGRectZero];

                [window addSubview:_audioPlayerView];

            }

        }

        return_audioPlayerView;//已经生成就反应原来的

    }

    - (void)gotoPalying:(BOOL)isPlay

    {

        if (isPlay) {

            [self.player prepareToPlay];

            [self.player play];

        }

        else

        {

            [self.player pause];

        }

    }

    //播放完成

    - (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag

    {

        _playerBt.selected = NO;

    }

  • 相关阅读:
    线性代数思维导图——3.向量
    微分中值定理的基础题型总结
    构造函数
    Python课程笔记(七)
    0241. Different Ways to Add Parentheses (M)
    0014. Longest Common Prefix (E)
    0013. Roman to Integer (E)
    0011. Container With Most Water (M)
    0010. Regular Expression Matching (H)
    0012. Integer to Roman (M)
  • 原文地址:https://www.cnblogs.com/leevaboo/p/3230028.html
Copyright © 2011-2022 走看看