zoukankan      html  css  js  c++  java
  • 【代码笔记】iOS-看图听声音

    一,效果图。

    二,工程图。

    三,代码。

    RootViewController.h

    复制代码
    #import <UIKit/UIKit.h>
    #import <AVFoundation/AVFoundation.h>
    
    @interface RootViewController : UIViewController
    <AVAudioPlayerDelegate>
    {
        UIImageView *backImageView;
        //播放器
        AVAudioPlayer *_audioPlayer;
        //图片名字数组
        NSMutableArray *pictureNameArray;
        //音乐名字数组
        NSMutableArray *musicNameArray;
        //播放到的下标索引
        int songIndex;
        //左侧按钮
        UIButton * leftButton;
        //右侧按钮
        UIButton * rightButton;
        //显示标题的label
        UILabel *titleLabel;
        
    }
    @end
    复制代码

     

    RootViewController.m

    复制代码
    #import "RootViewController.h"
    
    @interface RootViewController ()
    
    @end
    
    @implementation RootViewController
    
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            // Custom initialization
        }
        return self;
    }
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        
        self.title = @"看图听声";
        
        //初始化数据
        [self initData];
        //初始化背景图
        [self initBackGroundView];
    }
    #pragma -mark -functions
    -(void)initData{
        
        pictureNameArray=[[NSMutableArray alloc]initWithObjects:@"chicken",@"bear",@"bird",@"camel",@"cat",@"cattle",@"deer",@"dog",@"dolphin",@"donkey",@"duck",@"elephant",@"fox",@"frog",@"goose",@"horse",@"lion",@"mew",@"monkey",@"pig",@"sheep",@"snake",@"tiger",@"wolf", nil];
        
        
        musicNameArray=[[NSMutableArray alloc]initWithObjects:@"小鸡",@"小熊",@"小鸟",@"骆驼",@"小猫",@"奶牛",@"梅花鹿",@"小狗",@"海豚",@"毛驴",@"鸭子",@"大象",@"狐狸",@"青蛙",@"白鹅",@"小马",@"狮子",@"海鸟",@"猴子",@"小猪",@"绵羊",@"小蛇",@"老虎",@"小狼", nil];
    }
    
    -(void)loadMusic:(NSString*)name type:(NSString*)type
    {
        NSString* path= [[NSBundle mainBundle] pathForResource: name ofType:type];
        NSURL* url = [NSURL fileURLWithPath:path];
        _audioPlayer= [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
        _audioPlayer.delegate=self;
        _audioPlayer.volume= 0.5;
        [_audioPlayer prepareToPlay];
        
    }
    
    -(void)initBackGroundView
    {
        backImageView= [[UIImageView alloc] initWithFrame: CGRectMake(0, 0, 320, 460)];
        backImageView.image= [UIImage imageNamed:[NSString stringWithFormat:@"%@.jpg",[pictureNameArray objectAtIndex:songIndex]]];
        [self.view addSubview:backImageView];
        
        //播放按钮
        UIButton* button= [UIButton buttonWithType:UIButtonTypeCustom];
        button.tag=100;
        button.frame=CGRectMake(130, 310, 60, 50);
        [button addTarget:self action:@selector(play:) forControlEvents:UIControlEventTouchUpInside];
        [button setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];
        [self.view addSubview:button];
        
        //上一首
        leftButton= [UIButton buttonWithType:UIButtonTypeCustom];
        leftButton.frame=CGRectMake(30, 310, 60, 50);
        [leftButton addTarget:self action:@selector(prier) forControlEvents:UIControlEventTouchUpInside];
        [leftButton setImage:[UIImage imageNamed:@"Left.png"] forState:UIControlStateNormal];
        [self.view addSubview:leftButton];
        
        
        //下一首
        rightButton= [UIButton buttonWithType:UIButtonTypeCustom];
        rightButton.frame=CGRectMake(230, 310, 60, 50);
        [rightButton addTarget:self action:@selector(next) forControlEvents:UIControlEventTouchUpInside];
        [rightButton setImage:[UIImage imageNamed:@"right.png"] forState:UIControlStateNormal];
        [self.view addSubview:rightButton];
        
        
        //标题
        titleLabel= [[UILabel alloc] initWithFrame:CGRectMake(0, 290, 320, 30)];
        titleLabel.font= [UIFont systemFontOfSize:25];
        titleLabel.textAlignment= NSTextAlignmentCenter;
        titleLabel.textColor= [UIColor blueColor];
        titleLabel.numberOfLines=0;
        titleLabel.text= [musicNameArray objectAtIndex:0];
        [self.view addSubview:titleLabel];
        
        [self loadMusic:[pictureNameArray objectAtIndex:0] type:@"mp3"];
        
    }
    
    -(void)setBackground:(UIImage *)image
    {
        backImageView.image = image;
        
    }
    
    #pragma -mark -doClickActions
    //播放
    -(void)play:(UIButton*)button
    {
        if(_audioPlayer.playing)
        {
            [button setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];
            [_audioPlayer pause];
        }
        else
        {
            [button setImage:[UIImage imageNamed:@"stop.png"] forState:UIControlStateNormal];
            [_audioPlayer play];
        }
        
    }
    //上一首
    -(void)prier
    {
        BOOL playFlag;
        if(_audioPlayer.playing)
        {
            playFlag=YES;
            [_audioPlayer stop];
        }
        else
        {
            playFlag=NO;
        }
        songIndex--;
        if(songIndex<0)
            songIndex= pictureNameArray.count-1
            ;
        
        UIButton * button = (UIButton*)[self.view viewWithTag:100];
        [button setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];
        [self loadMusic:[pictureNameArray objectAtIndex:songIndex] type:@"mp3"];
        
        UIImage * image = [UIImage imageNamed:[NSString stringWithFormat:@"%@.jpg",[pictureNameArray objectAtIndex:songIndex]]];
        [self setBackground:image];
        titleLabel.text= [musicNameArray objectAtIndex:songIndex];
        
        if(playFlag==YES)
        {
            [_audioPlayer play];
        }
        
    }
    //下一首
    -(void)next
    {
        BOOL playFlag;
        if(_audioPlayer.playing)
        {
            playFlag=YES;
            [_audioPlayer stop];
        }
        else{
            playFlag=NO;
        }
        songIndex++;
        if(songIndex==pictureNameArray.count){
            songIndex= 0;
        }
        
        
        UIButton * button = (UIButton*)[self.view viewWithTag:100];
        [button setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];
        [self loadMusic:[pictureNameArray objectAtIndex:songIndex] type:@"mp3"];
        
        UIImage * image = [UIImage imageNamed:[NSString stringWithFormat:@"%@.jpg",[pictureNameArray objectAtIndex:songIndex]]];
        [self setBackground:image];
        
        titleLabel.text= [musicNameArray objectAtIndex:songIndex];
        if(playFlag==YES)
        {
            [_audioPlayer play];
            
        }
     }
    
    
    @end
    复制代码

     

     

     
     
  • 相关阅读:
    spring注解之@Lazy
    HttpClient之EntityUtils对象
    HTTP协议(Requset、Response)
    SpringBoot SpringSession redis SESSION
    Spring-session redis 子域名 session
    Spring Boot Servlet
    版本管理
    Spring AOP @Aspect
    Spring 事务配置的五种方式
    Spring <tx:annotation-driven>注解 JDK动态代理和CGLIB动态代理 区别。
  • 原文地址:https://www.cnblogs.com/yang-guang-girl/p/5403209.html
Copyright © 2011-2022 走看看