传值 音频

1.属性传值:如果要从这个页面跳转到另一个页面 并同时把值传到另一个页面,就需要在另一个页面里面声明一个属性:如@property(nonatomic,copy)NSString *titleName; 并且要在另一个页面viewDidLoad里面:self.title = self.titleName 用相关控件去触发这个方法,进行传值。 


2.自定义构造函数传值:

1.


3.通知传值:

(1).如果要从广播中心传一个值到接收者那里。创建两个类ViewController,HTTPResqustManager  先要在HTTPResqustManager.h里面声明一个类方法,在HTTPResqustManager.m里面准备相关的数据,还有一个通知中心,用来发送消息,在ViewController里面导入HTTPResqustManager头文件,还有在他里面自定义一个构造函数,并创建接收者,用相关控件来显示传过来的内容,实现接收者里的方法,最后在方法里面显示传来的值


(2)如果要在下一个页面把值传道上一个页面,在下一个页面创建一个通知中心,还要在上一个页面准备好一个接收通知的人,并且还要有方法去触发相关事件,利用导航控制器的方法和属性将值可以传代上一个页面了


4.Block传值:

   block的声明

   block声明公式

   返回值类型(^名字)(参数列表);

    

   block实现

   block实现的公式

   名字 = ^(参数列表){};

    

   使用block的情况反向传值(block)

    

列如:定义一个图片名字的block

   

    1.局部变量

   void(^imageNameBlock)(NSString *imageName);

如果想修改Block外部变量的值需添加__block 修饰

   __block UIImage *image = nil;

   __block UIImage *image;

  imageNameBlock = ^(NSString *imageName){

      image = [UIImage imageNamed:imageName];

      self.view.backgroundColor = [UIColor colorWithPatternImage:image];

     

    

  };

   

  imageNameBlock(@“1.jpg");




2.全局变量

(1)先定义一个全局变量:

{

 void(^imageNameBlock)(NSString *imageName;

}

   block   循环使用

__weak ViewController *vc = self; // 弱引用 防止循环使用

  

   __block UIImage *image;

  

  imageNameBlock = ^(NSString *imageName){

      

     image = [UIImage imageNamed:imageName];

     vc.view.backgroundColor = [UIColor colorWithPatternImage:image];

     

};

   

    

    





定义一个全局变量:

{

void(^labelBlock)(NSString *labelContent);

}


  UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 200, 350, 50)];

  

  label.contentMode =  UIViewContentModeScaleAspectFit;

  label.backgroundColor = [UIColor redColor];

  [self.view addSubview:label];

  

  labelBlock = ^(NSString *labelContent){

       label.text = labelContent;

      

   };

    



5.KVO传值:


首先写一个滚动视图的控件,并定义成全局变量

{

    UIScrollView *myScrollView;


}

初始化滚动视图:

 

    myScrollView = [[UIScrollView alloc]initWithFrame:self.view.frame];

    

    

    

    myScrollView.contentSize = CGSizeMake(0, 800);

    

    

    myScrollView.backgroundColor  =[UIColor blueColor];

    

    [self.view addSubview:myScrollView];


   使用KVO得到滚动视图 的偏移量

 [myScrollView addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];


观察键值

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context

{


    if ([keyPath isEqualToString:@"contentOffset"]) {

        

        NSLog(@"%@",change[@"contentOffset"]);

       

     CGPoint set = [change[@"new"]CGPointValue];

        

     NSLog(@"%f",set.y);


        

}







音效:

    使用 AudioToolbox通过系统声音ID 播放音效


    步骤: 1.注册   2.播放


     NSString *path = [[NSBundle mainBundle]pathForResource:@"和局" ofType:@"aiff"];


    1.注册系统声音的ID

    

    SystemSoundID ID = 1;


    AudioServicesCreateSystemSoundID((__bridge CFURLRef)([NSURL fileURLWithPath:path]), &ID);

    

   2.播放

    AudioServicesPlaySystemSound(ID);

    

   3.振动

   AudioServicesPlayAlertSound(ID)

   

     

    

播放声音文件

    

 使用AVFoundation(audio video)处理 音频 视频的操作

    

 1.音频播放

   如果想使用 音乐播放功能 就必须导入AVFoundation

   使用AVAudioPlayer 播放音频

   设置音频的音量(volum)、音频播放速率(rate)、音频播放位置、还可以得到它的总时长、监测音频是否播放完毕、音乐播放的循环次数...操作


    [self creatPlayerWithAudioName:nil];

    

    

    

 #pragma mark—音乐播放结束代理方法—


- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag

{


NSLog(@"播放完毕");


}

- (void)creatPlayerWithAudioName:(NSString *)name

{

    NSString *path = [[NSBundle mainBundle]pathForResource:@"男人哭吧不是罪-刘德华" ofType:@"mp3"];

    

   if (player) {

        player = nil;

              }

    

    

 初始化音乐播放器

    player = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:path] error:nil];



    

  音量

    player.volume = 1;

    

    

 ******速率(如果想设置播放速率必须先开启允许设置)*****

    player.enableRate = YES;

    player.rate = 2;

    

   声道(-1.0左声道 0.0中间 1.0右声道)

    player.pan = -1.0;

    

  循环次数 0播放一次负数循环播放 正数循环次数+1

    player.numberOfLoops = 0;

    

    

    player.delegate = self;

    

    

  预播放 (把音乐文件的数据加载到内存)

    

    [player prepareToPlay];

   播放

    

    [player play];

    

 设置音乐播放器当前的播放时间

    

    player.currentTime = 100;

    

   durtaion 总时长 只读

    

    NSLog(@"音乐的总时长:%f",player.duration);

    

    NSLog(@"通道的数量:%ld",player.numberOfChannels);

    NSLog(@"获取设备当前时间:%f",player.deviceCurrentTime);

    

player.isPlaying 是否正在播放

    

   暂停

 [player pause];

   停止

 [player stop];

    


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值