AEMemoryBufferPlayer.h
Go to the documentation of this file.
1 //
2 // AEMemoryBufferPlayer.h
3 // The Amazing Audio Engine
4 //
5 // Created by Michael Tyson on 13/02/2012.
6 //
7 // This software is provided 'as-is', without any express or implied
8 // warranty. In no event will the authors be held liable for any damages
9 // arising from the use of this software.
10 //
11 // Permission is granted to anyone to use this software for any purpose,
12 // including commercial applications, and to alter it and redistribute it
13 // freely, subject to the following restrictions:
14 //
15 // 1. The origin of this software must not be misrepresented; you must not
16 // claim that you wrote the original software. If you use this software
17 // in a product, an acknowledgment in the product documentation would be
18 // appreciated but is not required.
19 //
20 // 2. Altered source versions must be plainly marked as such, and must not be
21 // misrepresented as being the original software.
22 //
23 // 3. This notice may not be removed or altered from any source distribution.
24 //
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 #import <Foundation/Foundation.h>
31 #import "AEAudioController.h"
32 
41 @interface AEMemoryBufferPlayer : NSObject <AEAudioPlayable>
42 
53 + (void)beginLoadingAudioFileAtURL:(NSURL*)url
54  audioDescription:(AudioStreamBasicDescription)audioDescription
55  completionBlock:(void(^)(AEMemoryBufferPlayer *, NSError *))completionBlock;
56 
64 - (instancetype)initWithBuffer:(AudioBufferList *)buffer
65  audioDescription:(AudioStreamBasicDescription)audioDescription
66  freeWhenDone:(BOOL)freeWhenDone;
67 
80 - (void)playAtTime:(uint64_t)time;
81 
82 @property (nonatomic, readonly) AudioBufferList * buffer;
83 @property (nonatomic, readonly) NSTimeInterval duration;
84 @property (nonatomic, assign) NSTimeInterval currentTime;
85 @property (nonatomic, readonly) AudioStreamBasicDescription audioDescription;
86 @property (nonatomic, readwrite) BOOL loop;
87 @property (nonatomic, readwrite) float volume;
88 @property (nonatomic, readwrite) float pan;
89 @property (nonatomic, readwrite) BOOL channelIsPlaying;
90 @property (nonatomic, readwrite) BOOL channelIsMuted;
91 @property (nonatomic, readwrite) BOOL removeUponFinish;
92 @property (nonatomic, copy) void(^completionBlock)();
93 @property (nonatomic, copy) void(^startLoopBlock)();
94 @end
95 
96 #ifdef __cplusplus
97 }
98 #endif