AVAudioPlayer简易封装

AVAudioPlayer简易封装

 

[说明]

AVAudioPlayer简易封装,仅仅支持播放,暂停,停止,暂停时候带有渐隐效果,自己用,没有参考价值.

 

[源码]

https://github.com/YouXianMing/AVAudioPlayer-

 

一个定时器的封装类源码(该定时器可以指定运行的次数)

//
//  SpecialTimer.h
//  Music
//
//  Created by XianMingYou on 15/4/13.
//  Copyright (c) 2015年 XianMingYou. All rights reserved.
//

#import <Foundation/Foundation.h>

@class SpecialTimer;

@protocol SpecialTimerDelegate <NSObject>
@optional
- (void)specialTimer:(SpecialTimer *)specialTimer CurrentCount:(NSInteger)count;

@end

@interface SpecialTimer : NSObject

/**
 *  定时器代理
 */
@property (nonatomic, weak) id<SpecialTimerDelegate>   delegate;

/**
 *  重复执行的次数
 */
@property (nonatomic) NSInteger                        repeatTimes;

/**
 *  定时器执行的总时间
 */
@property (nonatomic) NSTimeInterval                   totalDuration;

/**
 *  激活定时器
 */
- (void)fire;

/**
 *  让定时器无效
 */
- (void)invalid;

@end
//
//  SpecialTimer.m
//  Music
//
//  Created by XianMingYou on 15/4/13.
//  Copyright (c) 2015年 XianMingYou. All rights reserved.
//

#import "SpecialTimer.h"

@interface SpecialTimer ()

@property (nonatomic)         NSInteger   count;
@property (nonatomic, strong) NSTimer    *timer;

@end

@implementation SpecialTimer

- (void)fire {
    // 参数没有配置就返回
    if (self.repeatTimes <= 0 || self.totalDuration <= 0) {
        return;
    }

    // 计数时间间隔
    NSTimeInterval timeInterval = self.totalDuration / self.repeatTimes;

    // 开启定时器
    self.timer = [NSTimer scheduledTimerWithTimeInterval:timeInterval
                                                  target:self
                                                selector:@selector(timerEvent)
                                                userInfo:nil
                                                 repeats:YES];
}

- (void)timerEvent {
    // 运行代理
    if (_delegate || [_delegate respondsToSelector:@selector(specialTimer:CurrentCount:)]) {
        [_delegate specialTimer:self CurrentCount:_count];
    }

    _count++;
    if (_count >= _repeatTimes) {
        _count = 0;
        [self.timer invalidate];
    }
}

- (void)invalid {
    [self.timer invalidate];
}

@end

时间: 2024-09-14 15:02:42

AVAudioPlayer简易封装的相关文章

jQuery版AJAX简易封装代码_jquery

开发过程中,AJAX的应用应该说非常频繁,当然,jQuery的AJAX函数已经非常好用,但是小编还是稍微整理下,方便不同需求下,可以简化输入参数,下面是实例代码: $(function(){ /** * ajax封装 * url 发送请求的地址 * data 发送到服务器的数据,数组存储,如:{"date": new Date().getTime(), "state": 1} * async 默认值: true.默认设置下,所有请求均为异步请求.如果需要发送同步请求

使用 NSPropertyListSerialization 持久化字典与数组

NSPropertyListSerialization The NSPropertyListSerialization class provides methods that convert property list objects to and from several serialized formats. Property list objects include NSData, NSString, NSArray, NSDictionary, NSDate, and NSNumber

IOS开发之多线程 -- GCD的方方面面

前言:这篇GCD的博文是本人阅读了很多海内外大神的关于GCD的文章,以及结合之前自己对GCD的粗浅的认识,然后取其精华,去其槽粕,综合起来的笔记,而且是尽可能的以通熟易懂的并且是正确的理论论述方式呈现给读者,同时也是讲大神博客中有的深涩的理论理解的通熟易懂转述给读者,已经是尽可能的让读者深入理解和掌握多线程的知识以及GCD的使用技术.最后的附录中,我将会给出所有本人阅读的大神写的关于多线程或者是GCD的文章链接,大家感兴趣的,可以去参考和学习.也许,看我的这篇就够了,因为我就是参考他们的,嘻嘻.

iOS之UI--富文本总结

文章内容大纲 1.NSMutableAttributedString的基本使用 2.NSMutableAttributedString的简易封装 3.使用开源代码GOBMarkupPaser处理富文本 4.UITextKit简介 5.编程思想的相关思考 前言 富文本使用案例: 这里我自己也用了富文本实现了简单的却也是常用的例子:                              对于最后面的¥50中划线这种设置,估计只有富文本最好用了.   在IOS或者Mac OS X通过UIKit提供

Android仿QQ消息提示实现弹出式对话框_Android

本文在<7种形式的Android Dialog使用实例>在这篇文章的基础进行学习,具体内容如下 1.概述 android原生控件向来以丑著称(新推出的Material Design当另说),因此几乎所有的应用都会特殊定制自己的UI样式.而其中弹出式提示框的定制尤为常见,本篇我们将从模仿QQ退出提示框来看一下常见的几种自定义提示框的实现方式. 这里使用的几种弹出框实现方法概括为以下几种: 自定义Dialog 自定义PopupWindow 自定义Layout View Activity的Dialo

【COCOS2D-X 备注篇】ASSETMANAGEREX使用异常解决备注-&gt;CHECK_JNI.CC JNI DETECTED ERROR IN APPLICATION: JNI NEWGLOBALREF CALLED WITH PENDING EXCEPTION ‘JAVA.LANG.NOCLA

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2dx/1928.html 最近使用cocos2dx 3.9版本的时,尝试了使用AssetManagerEx, 非Ex是早期版本,因为是新的扩展所以尝试下.确实挺好用的,基本的流程和对比以及下载等功能都有的. 具体怎么用不用我说了,应该网上一大堆,现在说下遇到的问题. 我一共写了两种形式: 一种是c++自己简易封装As

SSKeychain

SSKeychain https://github.com/soffes/sskeychain   SSKeychain is a simple wrapper for accessing accounts, getting passwords, setting passwords, and deleting passwords using the system Keychain on Mac OS X and iOS. SSKeychain是一个对keychain简易封装的开源库,用以存储用户

IOS设计模式-观察者模式

前言:23种软件设计模式中的观察者模式,也是在软件开发中,挺常用的一种设计模式.而在苹果开发中,苹果Cocoa框架已经给我们实现了这个设 计模式,那就是通知和KVO(Key-Value Observing),本篇博文将会先讲解通知和KVO的常用方法和使用示例,然后讲解观察者模式以及对观察者模式的实现.   文章内容大纲: 1.KVO的使用 2.通知的使用 3.观察者模式   正文: 1.KVO的使用 addObserver:forKeyPath:options:context: 通知其他对象的方

《Spring 3.0就这么简单》——第1章 快速入门 1.1 Spring概述

第1章 快速入门 本章通过一个简单的例子展现开发Spring Web应用的整体过程,通过这个实例,读者可以快速进入Spring Web应用的世界.实例应用按持久层.业务层和展现层进行组织,从底层DAO程序到Web展现程序逐层演进,一步步地搭建起一个完整的实例.通过本章的学习,读者可以独立完成一个典型的基于Spring的Web应用. 本章主要内容: Spring 概述 用户登录实例介绍 基于 Spring JDBC 的持久层实现 基于 Spring 声明式事务的业务层实现 基于 Spring MV