• iso 开发学习--简易音乐播放器(基于iPhone4s屏幕尺寸)


    三个按钮  一个进度条  

    贴图(软件中部分图片,来自网络,如果侵犯了您的权益,请联系我,会立刻撤下

    核心代码

    //
    //  ViewController.m
    //  08-10-MusicPlayer
    //
    //  Created by Ibokan on 15/8/10.
    //  Copyright (c) 2015年 Crazy凡. All rights reserved.
    //
    
    #import "ViewController.h"
    #import <AVFoundation/AVFoundation.h>
    
    @interface ViewController ()
    @property (nonatomic,strong)UIImageView * imageview;
    @property (nonatomic,strong)UISlider *slider;
    @property (nonatomic,strong)UIButton *buttonPlay;
    @property (nonatomic,strong)UIButton *buttonPause;
    @property (nonatomic,strong)UIButton *buttonStop;
    @property (nonatomic,strong)AVAudioPlayer *player;
    @property (nonatomic,strong)NSTimer *timer;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        self.imageview = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
        [self.imageview setImage:[UIImage imageNamed:@"bgimg.jpg"]];
        self.imageview.backgroundColor = [UIColor groupTableViewBackgroundColor];
        self.imageview.contentMode = UIViewContentModeScaleAspectFill;
        [self.view addSubview:self.imageview];
        //初始化背景
        
        self.slider = [[UISlider alloc]initWithFrame:CGRectMake(40, 350, 240, 10)];
        self.slider.value = 0.0;
        [self.view addSubview:self.slider];
        [self.slider addTarget:self action:@selector(updateValue) forControlEvents:UIControlEventValueChanged];
        
        self.buttonPlay = [[UIButton alloc]initWithFrame:CGRectMake(30, 400,60, 60)];
        [self.view addSubview:self.buttonPlay];
        [self.buttonPlay setBackgroundImage:[UIImage imageNamed:@"starten.png"] forState:UIControlStateNormal];
        [self.buttonPlay setBackgroundImage:[UIImage imageNamed:@"startun.png"] forState:UIControlStateDisabled];
        //初始化并插入A
        
        self.buttonPause = [[UIButton alloc]initWithFrame:CGRectMake(130, 400, 60, 60)];
        [self.view addSubview:self.buttonPause];
        self.buttonPause.enabled = false;
        [self.buttonPause setBackgroundImage:[UIImage imageNamed:@"stopen.png"] forState:UIControlStateNormal];
        [self.buttonPause setBackgroundImage:[UIImage imageNamed:@"stopun.png"] forState:UIControlStateDisabled];
        //初始化并插入B
        self.buttonStop = [[UIButton alloc]initWithFrame:CGRectMake(230, 400, 60, 60)];
        [self.view addSubview:self.buttonStop];
        self.buttonStop.enabled = false;
        [self.buttonStop setBackgroundImage:[UIImage imageNamed:@"pauseen.png"] forState:UIControlStateNormal];
        [self.buttonStop setBackgroundImage:[UIImage imageNamed:@"pauseun.png"] forState:UIControlStateDisabled];
        //初始化并插入C
        
        NSBundle *bundle = [NSBundle mainBundle];
        NSString *path = [bundle pathForResource:@"tianyaguoke" ofType:@"mp3"];
        //NSLog(@"%@",path);
        NSURL * url = [NSURL fileURLWithPath: path];
        self.player= [[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];
        [self.buttonPlay addTarget:self action:@selector(tapA) forControlEvents:UIControlEventTouchUpInside];
        [self.buttonPause addTarget:self action:@selector(tabB) forControlEvents:UIControlEventTouchUpInside];
        [self.buttonStop addTarget:self action:@selector(tabC) forControlEvents:UIControlEventTouchUpInside];
        
    }
    - (void)tapA
    {
        self.buttonPlay.enabled = false;
        self.buttonPause.enabled = true;
        self.buttonStop.enabled = true;
        [self.player play];
        self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeadd) userInfo:nil repeats:YES];
    }
    - (void)tabB
    {
        self.buttonPlay.enabled = true;
        self.buttonPause.enabled = false;
        self.buttonStop.enabled = false;
        [self.player stop];
        self.player.currentTime = 0 ;
    }
    - (void)tabC
    {
        
        self.buttonPlay.enabled = true;
        self.buttonPause.enabled = true;
        self.buttonStop.enabled = false;
        [self.player pause];
    }
    - (void)timeadd
    {
    //    double alltime = self.player.duration;
    //    double now = self.player.currentTime;
        self.slider.value = self.player.currentTime/self.player.duration;
    }
    - (void)updateValue
    {
        self.player.currentTime = self.player.duration * self.slider.value;
    }
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end
    View Code

    知识点总结:

      1、[self.buttonPlay setBackgroundImage:[UIImage imageNamed:@"starten.png"] forState:UIControlStateNormal];

      //为按钮添加图片

      2、[self.slider addTarget:self action:@selector(updateValue) forControlEvents:UIControlEventValueChanged];

      //slider(进度条)添加回调方法

      3、self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeadd) userInfo:nil repeats:YES];

      //NStimer的使用

      4、NSBundle *bundle = [NSBundle mainBundle];

          NSString *path = [bundle pathForResource:@"tianyaguoke" ofType:@"mp3"];

          NSURL * url = [NSURL fileURLWithPath: path];

          self.player= [[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];

      //NSBundle、NSURL 为AVAudio 添加路径

      5、self.imageview = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];

          [self.imageview setImage:[UIImage imageNamed:@"bgimg.jpg"]];

          self.imageview.backgroundColor = [UIColor groupTableViewBackgroundColor];

      //UIImageView  初始化

      6、self.imageview.contentMode = UIViewContentModeScaleAspectFill;

      self.imageview.contentMode = UIViewContentModeScaleAspectFit;

      self.imageview.contentMode = UIViewContentModeScaleToFill;

      //UIImageViewv  图片显示方式设定:比例充满  比例缩放  拉伸充满

      7、self.player.currentTime;self.player.duration

      //音乐播放器时间(当前播放的时间,时间总长)

    点我下载源码     因为文件大小问题,文件中的音频被我删掉了,另附文件布局,我想大家可以看懂!

  • 相关阅读:
    通过docker创建并使用apache容器
    Neo4j教程 Neo4j视频教程 Neo4j 图数据库视频教程
    Neo4j视频教程 Neo4j 图数据库视频教程
    两台centos之间传送文件
    Spring mvc整合freemarker详解
    C#异步编程
    chrome使用技巧(看了定不让你失望)
    Redis可视化工具 Redis Desktop Manager
    Mongodb数据查询 | Mongodb
    PowerDesigner最基础的使用方法入门学习
  • 原文地址:https://www.cnblogs.com/kongkaikai/p/4743194.html
Copyright © 2020-2023  润新知