三个按钮  一个进度条

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

核心代码

//
// 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(, , , )];
[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(, , , )];
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(, ,, )];
[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(, , , )];
[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(, , , )];
[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: 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 = ;
}
- (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

知识点总结:

  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

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

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

iso 开发学习--简易音乐播放器(基于iPhone4s屏幕尺寸)的更多相关文章

  1. ios开发学习- 简易音乐播放器2 (基于iPhone4s屏幕尺寸)-- 歌词解析--plist文件应用--imageNamed图片加载耗内存

    声明:(部分图片来自网络,如果侵犯了您的权益请联系我,会尽快删除!) 又是音乐播放器,不过这次和上次不一样了,准确说这次更像播放器了,初学者不建议看这个,可以先看前面一个音乐播放器(1),当然 我没加 ...

  2. 简易音乐播放器主界面设计 - .NET CORE(C#) WPF开发

    微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. 简易音乐播放器主界面设计 - .NET CORE(C#) WPF开发 阅读导航 本文背景 代码 ...

  3. 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 Bug修复

    开篇语 昨晚发了一篇: <简年15: 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 > 然后上午起来吃完午饭之后,我就准备继续开工的,但是突然的,想要看B站.然后在一股 ...

  4. 记一次酷狗音乐API的获取,感兴趣的可以自己封装开发自己的音乐播放器

    1.本教程仅供个人学习用,禁止用于任何的商业和非法用途,如涉及版权问题请联系笔者删除. 2.随笔系作者原创文档,转载请注明文档来源:http://www.cnblogs.com/apresunday/ ...

  5. ios开发:一个音乐播放器的设计与实现

    github地址:https://github.com/wzpziyi1/MusicPlauer 这个Demo,关于歌曲播放的主要功能都实现了的.下一曲.上一曲,暂停,根据歌曲的播放进度动态滚动歌词, ...

  6. Android音乐播放器的设计与实现

    目录 应用开发技术及开发平台介绍 应用需求分析 应用功能设计及其描述 应用UI展示 一.应用开发技术及平台介绍 ①开发技术: 本系统是采用面向对象的软件开发方法,基于Android studio开发平 ...

  7. 使用react native制作的一款网络音乐播放器

    使用react native制作的一款网络音乐播放器 基于第三方库 react-native-video设计"react-native-video": "^1.0.0&q ...

  8. 基于Basys2开发板的简易电子琴和音乐播放器设计

    背景:华中科技大学 电测综合实验 主要功能:Basys2开发板外接一个扬声器(或无源蜂鸣器也可)实现电子琴和音乐播放器的功能.其中由于开发板上只有4个按键,所以电子琴功能只做了4个音调,分别对应于4个 ...

  9. python 开发在线音乐播放器-简易版

    在线音乐播放器,使用python的Tkinter库做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口,通过urllib.urlopen模块打开网址,使用Json模块进行数 ...

随机推荐

  1. [AngularJS + Unit Testing] Testing Directive's controller with bindToController, controllerAs and isolate scope

    <div> <h2>{{vm.userInfo.number}} - {{vm.userInfo.name}}</h2> </div> 'use str ...

  2. android 36 线程通信

    安卓中一个程序跑起来叫进程,进程中至少有一个主线程.主线程用于处理用户的触摸操作和将触摸操作事件分发给响应的控件.如果进行消耗时间操作,下载,磁盘读取文件,不润许在主线程操作,只能在工作线程操作.主线 ...

  3. BINARY and varBINARY

    BINARY(n) ,varBINARY(n): N代表字节数 utf8: mysql> CREATE TABLE t (c BINARY()); Query OK, rows affected ...

  4. Redhat 官方Performance_Tuning_Guide

    https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Gui ...

  5. 第二篇:从 GPU 的角度理解并行计算

    前言 本文从使用 GPU 编程技术的角度来了解计算中并行实现的方法思路. 并行计算中需要考虑的三个重要问题 1. 同步问题 在操作系统原理的相关课程中我们学习过进程间的死锁问题,以及由于资源共享带来的 ...

  6. Visual Studio 调试技巧 (二)-- 为中断设置条件

    今天尽是干货.我们来讨论如何为中断设置条件吧. 就像习大大讲的精确扶贫一样,如果我们能很精确地,仅在需要的时候把断点命中,以查看这个时候的程序数据,我们就能显著地提高 Debug 的效率.为断点设置条 ...

  7. 关于oracle的函数,存储过程,触发器,序列,视图,左右连接一些的应用 带案例

    CREATE TABLE STUDENT( --创建学生表  ID NUMBER(10) PRIMARY KEY,   --主键ID  NAME VARCHAR2(20),  CLASSNAME VA ...

  8. jetty服务器访问系统的域名

    jetty-env.xml=><Set name="contextPath">/epps-compensation-backend</Set> 这个决 ...

  9. ip接口调用

    <?php header("Content-type: text/html; charset=utf-8"); function getIP(){ if (isset($_S ...

  10. 关于typedef的用法总结

    不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中.typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些 ...