일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 맑은세탁빨래방
- 추천게임
- 제주 흑돼지 맛집
- 제주 한성식당
- 우도물꼬해녀의집
- 제주가죽부츠세탁
- 대형카페트세탁
- 돈향기
- 보리빵마을
- 추천어플
- 유리의성
- 아이폰
- 명품화세탁
- 명품가방세탁
- 산지물식당 신제주 연동점
- 제주흑돈세상수라간
- 낚시
- 오늘의 추천어플
- WebView
- 예수그리스도
- 만복흑돼지
- 해적잠수함
- 모바일게임
- 황금고팡
- 돈사촌 노형점
- 제주 산방산 맛집
- 맑은슈즈워시
- [JunK의 모바일게임 소개]
- 독개물항
- 컴투스
- Today
- Total
일상+
AVAudiPlayer 사용하기 본문
// AudioPlayer.h
// GameDemo
//
// Created by Chang-Min Pak on 6/12/10.
// Copyright 2010 thefirstgoodcom. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <AVFoundation/AVAudioPlayer.h>
typedef enum {
kAudio_Background
} AudioPlayerType;
@interface AudioPlayer : NSObject {
AVAudioPlayer *backgroundAudioPlayer;
}
@property (nonatomic, retain) AVAudioPlayer *backgroundAudioPlayer;
+ (AudioPlayer *)sharedAudioPlayer;
- (AVAudioPlayer*) createAudioPlayer:(NSString*)fileName fileType:(NSString*)fileType volumn:(CGFloat)volumn;
- (void) playAudio:(AudioPlayerType)type;
- (void) stopAudio:(AudioPlayerType)type;
@end
//
// AudioPlayer.m
// GameDemo
//
// Created by Chang-Min Pak on 6/12/10.
// Copyright 2010 thefirstgood.com. All rights reserved.
//
#import "AudioPlayer.h"
@implementation AudioPlayer
@synthesize backgroundAudioPlayer;
// Singleton
static AudioPlayer *_sharedAudioPlayer = nil;
+ (AudioPlayer *) sharedAudioPlayer {
@synchronized([AudioPlayer class]) {
if (!_sharedAudioPlayer)
[[self alloc] init];
return _sharedAudioPlayer;
}
// to avoid compiler warning
return nil;
}
+ (id) alloc{
@synchronized([AudioPlayer class]) {
_sharedAudioPlayer = [super alloc];
return _sharedAudioPlayer;
}
// to avoid compiler warning
return nil;
}
- (AVAudioPlayer*) createAudioPlayer:(NSString*)fileName fileType:(NSString*)fileType volumn:(CGFloat)volumn {
// 넘겨 받은 파일의 full path를 찾습니다.
NSString *audioPath = [[NSBundle mainBundle] pathForResource:fileName ofType:fileType];
// 메인번들(리소스)에 들어있는 음악파일로 AVAudioPlayer 객체를 만들고 반복 횟수, 소리 세기 등을 설정합니다.
AVAudioPlayer *tmpAudionPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURLfileURLWithPath:audioPath] error:NULL];
tmpAudionPlayer.numberOfLoops = 0;
tmpAudionPlayer.volume = volumn;
// 소리를 내기 위해 버퍼에 로딩을 합니다.
// play 메소드를 호출하면 자동으로 호출되게 됩니다.
[tmpAudionPlayer prepareToPlay];
[tmpAudionPlayer autorelease];
return tmpAudionPlayer;
}
// 음악 연주를 시작합니다.
- (void) playAudio:(AudioPlayerType)type {
if(type == kAudio_Background) {
if(self.backgroundAudioPlayer == nil) {
self.backgroundAudioPlayer = [self createAudioPlayer:@"soundBG" fileType:@"mp3" volumn:3.7];
// 배경음악이므로 계속해서 반복되도록 합니다.
// -1 = 무한반복
self.backgroundAudioPlayer.numberOfLoops = -1;
}
[self.backgroundAudioPlayer play];
}
}
// 음악 연주를 중단합니다.
- (void) stopAudio:(AudioPlayerType)type {
if(type == kAudio_Background && self.backgroundAudioPlayer != nil) {
[self.backgroundAudioPlayer stop];
self.backgroundAudioPlayer.currentTime = 0;
}
}
- (void) dealloc {
if(self.backgroundAudioPlayer != nil) {
[self stopAudio:kAudio_Background];
[backgroundAudioPlayer release];
}
[super dealloc];
}
@end
(2) 아이폰에서는 다음과 같이 다양한 형태의 음악 파일을 지원합니다.
AAC
AIFF
AAC Protected
MP3
MP3 VBR
Audible
Apple Lossless
WAV
//
// GameLayer.m
// GameDemo
//
// Created by cmpak on 5/10/10.
// Copyright 2010 thefirstgood.com. All rights reserved.
//
#import "AudioPlayer.h"
- (void) onEnter {
[super onEnter];
// 배경음악 연주를 시작합니다.
[[AudioPlayer sharedAudioPlayer] playAudio:kAudio_Background];
// 배경음악 연주를 종료합니다.
[[AudioPlayer sharedAudioPlayer] playAudio:kAudio_Background];
}