zoukankan      html  css  js  c++  java
  • 音乐

    头文件:

    #import <AVFoundation/AVFoundation.h>

    代理:

    AVAudioPlayerDelegate

    单例头文件:

    #import "Singleton.h"

    @interface music : NSObject

    @property (nonatomic, copy) NSString *nameyinyue;

    @property (nonatomic, copy) NSString *nameyinxiao;

    @property (nonatomic, strong) AVAudioPlayer *audioPlayer;

    + (music *) sharedInstance;

    @end

    @property(strong,nonatomic) music *music_t;

    _music_t=[music sharedInstance];

    #pragma mark -懒加载
    -(AVAudioPlayer *)audioPlayer
    {
        if (!_music_t.audioPlayer ) {
            
            // 0. 设置后台音频会话
            [self setBackGroundPlay];
            
            // 1. 获取资源URL
            NSURL *url = [[NSBundle mainBundle]  URLForResource:@"樱花樱花想见你.mp3" withExtension:nil];
            
            // 2. 根据资源URL, 创建 AVAudioPlayer 对象
            _music_t.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
            
            // 2.1 设置允许倍速播放
            self.audioPlayer.enableRate = YES;
            
            // 3. 准备播放
            [_music_t.audioPlayer prepareToPlay];
            
            // 4. 设置代理, 监听播放事件
            _music_t.audioPlayer.delegate = self;
        }
        return _music_t.audioPlayer;
    }
    
    - (void)setBackGroundPlay
    {
        // 1. 设置会话模式
        [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; ;
        
        // 2. 激活会话
        [[AVAudioSession sharedInstance] setActive:YES error:nil];
        
        
    }
    //点击播放或者暂停
    -(void)btn1ButtonAction:(UIButton *)btn {
        if ([_music_t.nameyinxiao isEqualToString:@"暂停音效"]) {
            [self initWithYinxiao];
        }
        if ([_music_t.nameyinyue isEqualToString:@"播放音乐"]) {
            [self.audioPlayer play];
            NSLog(@"+++++++++++++++");
            self.audioPlayer.numberOfLoops = -1;
            _music_t.nameyinyue=@"暂停音乐";
        }
        else{
            [self.audioPlayer pause];
            NSLog(@"--------------");
            _music_t.nameyinyue=@"播放音乐";
        }
        [_btnYinyue setImage:[UIImage imageNamed:_music_t.nameyinyue] forState:UIControlStateNormal];
    }
  • 相关阅读:
    。。。Hibernate 查询数据 事务管理。。。
    如何在easyui datagrid 中显示外键的值
    easyui datagrid 中序列化后的日期格式化
    使用Log4net把日志写入到SqlServer数据库
    在ALV点击Key值调用TCode,跳过初始屏幕
    JAVA环境变量设置
    在Jsp中调用静态资源,路径配置问题
    eclipse下项目复制改名注意事项
    HTML5与CSS3基础教程第八版学习笔记16-21章
    HTML5与CSS3基础教程第八版学习笔记11~15章
  • 原文地址:https://www.cnblogs.com/sheer-code/p/10732403.html
Copyright © 2011-2022 走看看