你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> IOS基本聲音播放類

IOS基本聲音播放類

編輯:IOS開發綜合
一個基本的IOS聲音播放支持類,注釋不多對付看吧
 
 
#import <Foundation/Foundation.h> 
#import <AudioToolbox/AudioToolbox.h> 
#import <AVFoundation/AVFoundation.h> 
 
 
@interface Sound_Base : NSObject{ 
     
    float   volume; 
    BOOL    is_turnON; 
     
    AVAudioPlayer *mainMenuMusic_Player; 
     
    SystemSoundID btn_soundID; 
    SystemSoundID err_soundID; 
     

 
@property (nonatomic)               BOOL            is_turnON; 
@property (nonatomic)               float           volume; 
@property (nonatomic,retain)        AVAudioPlayer   *mainMenuMusic_player; 
@property (nonatomic)               SystemSoundID   btn_soundID; 
@property (nonatomic)               SystemSoundID   err_soundID; 
 
 
 
-(void)setSoundSwitch:(BOOL)sound_state; 
-(void)setUIVolume:(float)f_volume; 
-(void)initSound; 
-(void)playSysSound:(SystemSoundID)sys_sID; 
-(void)stopAllMusic; 
 
 
 
 
#import "Sound_Base.h" 
 
@implementation Sound_Base 
 
 
@synthesize mainMenuMusic_player; 
@synthesize volume; 
@synthesize is_turnON; 
 
@synthesize btn_soundID; 
@synthesize err_soundID; 
 
 
 
 
-(void)dealloc{ 
     
    if (self.mainMenuMusic_player.playing) { 
        [self.mainMenuMusic_player stop]; 
    } 
    [mainMenuMusic_player   release]; 
     
    if (btn_soundID) { 
        AudioServicesDisposeSystemSoundID(btn_soundID),btn_soundID = 0; 
    } 
     
    if (err_soundID) { 
        AudioServicesDisposeSystemSoundID(err_soundID),err_soundID = 0; 
    } 
     
    [super dealloc]; 

 
 
 
 
-(void)initSound{ 
     
    NSString *mainMenuMusic_path = [ [NSBundle mainBundle] pathForResource:@"bgm_0" ofType:@"aac"]; 
     
    NSURL *mainMenuMusic_url = [NSURL fileURLWithPath:mainMenuMusic_path]; 
    self.mainMenuMusic_player = [ [AVAudioPlayer alloc] initWithContentsOfURL:mainMenuMusic_url error:nil]; 
    self.mainMenuMusic_player.numberOfLoops = -1; 
    [self.mainMenuMusic_player prepareToPlay]; 
     
     
    NSString *btnSound_path = [[NSBundle mainBundle] pathForResource:@"sys_click" ofType:@"aiff"]; 
    AudioServicesCreateSystemSoundID( (CFURLRef)[NSURL fileURLWithPath:btnSound_path], 
                                     &btn_soundID); 
     
    NSString *errSound_path = [[NSBundle mainBundle] pathForResource:@"sys_error" ofType:@"aiff"]; 
    AudioServicesCreateSystemSoundID( (CFURLRef)[NSURL fileURLWithPath:errSound_path], 
                                     &err_soundID); 
     
    
    //todo get volume  and  is silence 
     
    is_turnON = YES; 
     
    float f_volume = 1.0; 
     
    [self setUIVolume:f_volume]; 
     

 
 
 
 
-(void)setSoundSwitch:(BOOL)sound_state{ 
     
    self.is_turnON = sound_state; 
     
    if ( self.is_turnON ) { 
        self.mainMenuMusic_player.volume = self.volume; 
    } else { 
        self.mainMenuMusic_player.volume = 0; 
    } 

 
 
 
-(void)setUIVolume:(float)f_volume{ 
     
    self.volume = f_volume; 
     
    if ( self.is_turnON ) { 
        self.mainMenuMusic_player.volume = f_volume; 
    } 
    else{ 
        self.mainMenuMusic_player.volume = 0; 
    } 
     

 
 
 
-(void)playSysSound:(SystemSoundID)sys_sID{ 
    if ( self.is_turnON ) { 
        AudioServicesPlaySystemSound(sys_sID); 
    } 
     

 
 
-(void)stopAllMusic{ 
    [self.mainMenuMusic_player stop]; 

 
 
 
@end 
 
 
在應用程序初始化後創建該類對象並調用其初始化函數,聲音也可繼續擴展添加。需要播放時調用相應的函數即可。
 
部分功能還沒有完成,如獲取配置中的音量大小,保存音量設置,聲音開關等。
 
另外  AudioServicesPlaySystemSound(sys_sID); 來播放是聲音不知道如何控制音量~~

摘自 zhao_yin的記事本
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved