iOS简单的音乐播放 声音播放详解手机开发

简单的音乐播放 导入AVFoundation.framework

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
  
    //路径 
    NSString* path = [[NSBundle mainBundle] pathForResource:@"xiguan" ofType:@"mp3"]; 
    //路径->url 
    NSURL* url = [NSURL fileURLWithPath:path]; 
      
    _player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil]; 
    //准备播放 
    [_player prepareToPlay]; 
    //支持变速 
    _player.enableRate = YES; 
    //峰值 平均值 
    _player.meteringEnabled = YES; 
} 
  
//进度 
- (IBAction)proSlider:(id)sender{ 
    //当前时间=总时间*slider.value; 
    float currentTime = _player.duration * _proSlider.value; 
    [_player setCurrentTime:currentTime]; 
} 
//声道 
- (IBAction)panSlider:(id)sender{ 
    _player.pan = _panSlider.value; 
} 
//速度 
- (IBAction)speedSlider:(id)sender{ 
    _player.rate = _speedSlider.value; 
} 
//声音 
- (IBAction)volSlier:(id)sender{ 
    _player.volume = _volSlider.value; 
} 
  
  
- (void)play:(id)sender{ 
    [_player play]; 
    //播放时候开启定时器 
    _timer = [NSTimer scheduledTimerWithTimeInterval:1/60.0 target:self selector:@selector(refresh) userInfo:nil repeats:YES]; 
} 
  
- (void)pause:(id)sender{ 
    [_player pause]; 
    //暂定的时候定时器失效 
    [_timer invalidate]; 
} 
  
- (void)refresh{ 
    //当前时间/总时间 
    float pro = _player.currentTime / _player.duration; 
    [_proSlider setValue:pro animated:YES]; 
      
    //刷新峰值平均值 
    [_player updateMeters]; 
    float peak = ([_player peakPowerForChannel:0] + 50) / 50; 
    float ave = ([_player averagePowerForChannel:0] + 50) / 50; 
    [_proV setProgress:peak animated:YES]; 
    [_proV2 setProgress:ave animated:YES]; 
} 
  
  
/////播放系统声音 
  
SystemSoundID myAlertSound; 
        NSURL *url = [NSURL URLWithString:@"/System/Library/Audio/UISounds/alarm.caf"]; 
        /* 
         low_power.caf  alarm.caf  SentMessage.caf 
         */ 
        AudioServicesCreateSystemSoundID((__bridge CFURLRef)(url), &myAlertSound); 
        AudioServicesPlaySystemSound(myAlertSound);

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/5211.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论