读书人

在Xcode中间用slider和switch控件实现

发布时间: 2013-10-15 16:47:37 作者: rapoo

在Xcode当中用slider和switch控件实现音乐的开关和音量控制
在Xcode中间用slider和switch控件实现音乐的开关和音量控制
在Xcode中间用slider和switch控件实现音乐的开关和音量控制


在建好项目之后需在Framework文件中添加AVFoundation.framework以上图片有导入的方法,不同版本的Xcode导入的方法可能有些差别

在AppDelegate.h中

#import

#import

#import "ViewController.h"

@class ViewController;


@interface AppDelegate : UIResponder <</span>UIApplicationDelegate>


@property (strong, nonatomic) UIWindow *window;


@property (strong, nonatomic) ViewController *viewController;

@end


在AppDelegate.m中

#import "AppDelegate.h"


#import "ViewController.h"


@implementation AppDelegate

@synthesize viewController;


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions

{

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// Override point for customization after application launch.

self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];

self.window.rootViewController = self.viewController;


[self.window makeKeyAndVisible];

return YES;

}

。。。。。。。。

在ViewController中

#import

#import


@interface ViewController : UIViewController <</span>AVAudioPlayerDelegate>

{


UILabel *label;

UISlider *slider;

UISwitch *Switch;

//int dir;

AVAudioPlayer *player;

}

//@property int dir ;

@property(nonatomic,strong)UILabel*label;

@property(nonatomic,strong)UISlider *slider;

@property(nonatomic,strong) UISwitch *Switch;

@property(nonatomic,strong)AVAudioPlayer *player;

@property(nonatomic,strong)IBOutlet UISlider *m_volume;

-(IBAction)sliderChanged:(UISlider*)sender;


//

- (IBAction)musicSwitch:(id)sender;

-(IBAction)changeVolume:(id)sender;

-(void)playAudioFile:(NSString *)soundFileName;

@end



#import "ViewController.h"

#import "AppDelegate.h"

@interface ViewController ()


@end


@implementation ViewController

@synthesize label;

@synthesize slider;

@synthesize Switch;

@synthesize player;

@synthesize m_volume;

- (void)viewDidLoad

{

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

label=[[UILabel alloc]initWithFrame:CGRectMake(100, 100, 200, 100)];

label.text=@"50";

[self.view addSubview:label];

[slider addTarget:self action:@selector(sliderChange:)forControlEvents:UIControlEventEditingChanged];

[slider addTarget:self action:@selector(switchChange:)forControlEvents:UIControlEventEditingChanged];

[self playAudioFile:@"05 05.Forever Love副本"];

}


- (void)didReceiveMemoryWarning

{

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}


//让tabel里面的数字由1到100内增减

-(IBAction)sliderChanged:(UISlider*)sender

{

slider=(UISlider*)sender;

// int progressAsInt=(int)(slider.value+0.5f);

int progressAsInt=[slider value]*100;

NSString *newText=[[NSString alloc]initWithFormat:@"%d",progressAsInt ];

label .text=newText;

//[newText release];

}




//[[NSNotificationCenter defaultCenter] addObserver:self

//selector:@selector(volumeChanged:)

//name:@"AVSystemController_SystemVolumeDidChangeNotification"

//object:nil];




//实现协议方法

-(void)audioPlayerBeginInterruption:(AVAudioPlayer *)player

{

//播放器被中断的时候让音乐暂停

[self.player pause];

}


//实现协议方法

-(void)audioPlayerEndInterruption:(AVAudioPlayer *)player withOptions:(NSUInteger)flags

{

//结束中断返回到这个程序的时候让音乐继续播放

[self.player play];

}

//播放音乐

-(void)playAudioFile:(NSString *)soundFileName{

NSString *fileName=[[NSBundle mainBundle]pathForResource:soundFileName ofType:@"mp3"];

if ([[NSFileManager defaultManager]fileExistsAtPath:fileName]) {

NSURL *fileUrl=[NSURL fileURLWithPath:fileName];

NSError *err=nil;

player=[[AVAudioPlayer alloc]initWithContentsOfURL:fileUrl error:&err];

if (!player) {

//问题处理

}

else{

//让音乐播放完之后继续循环播放

[player setNumberOfLoops:-1];

//设置事件委派

[player setDelegate:self];

//调节音量(范围从0到1)

player.volume=0.5;

//准备buffer,减少播放延时的时间

[player prepareToPlay];

//播放音乐

[player play];

//[player playAtTime:1];

}

}

else{

NSLog(@"没有找到文件");

}

}

- (IBAction)musicSwitch:(id)sender

{

UISwitch *s=(UISwitch *)sender;

if ([s isOn]==YES) {

if (self.player.playing==NO) {

[self.player play];

}

}

else{

if (self.player.playing==YES) {

[self.player pause];

}

}

}

-(IBAction)changeVolume:(id)sender

{

if (self.player.playing) {

float value= m_volume.value;

player.volume=value;

}

}

@end

读书人网 >移动开发

热点推荐