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

知识点总结:

  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

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

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

时间: 2024-10-12 07:13:17

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

Android学习之旅--简易音乐播放器实现之前期准备

学习Android有两个月了,感觉现在进入一个瓶颈--基础知识了解,但是不能灵活运用.我想这是所有新手学习android时都会遇到的 问题,所以打算做一个简易音乐播放器的小项目,这也是特别适合新手的练习项目.虽然小,但是也能考察不少东西.前几天看到一句话-----编 程不仅是一种知识,更是一种技能.既然是技能,那就需要不断练习才能熟练掌握. 项目目标前期实现本地音乐的播放,后期会往网络音乐方面发展,如果进行顺利的话,我会将源码放在github上,欢迎各位大神指导^- ^.我会坚持每天一更,记录每

Android开发---MediaPlayer简单音乐播放器

Android开发-MediaPlayer简单音乐播放器 功能介绍 实现一个简单的播放器,类似网易云音乐形式,功能包括: 播放.暂停,停止,退出功能: 后台播放功能: 进度条显示播放进度.拖动进度条改变进度功能: 播放时图片旋转,显示当前播放时间功能: 界面样式 功能实现 1. MediaPlayer的实现 MediaPlayer常用方法介绍 MediaPlayer的实现包括初始化MediaPlayer,MediaPlayer的功能实现,包括播放.暂停.停止.离开等,具体细节如下: MediaP

简易音乐播放器制作

制作简易音乐播放器: 1.功能:音乐列表,播放,暂停,上一曲,下一曲,进度条(显示进度时间,控制进度),随机播放,单曲循环,顺序播放,歌词显示等 2.使用框架:AVFoundation 3.知识点:AVPlayer 使用,pch 文件使用,封装思想,MVC模式,storyBoard的使用,消息发送机制,观察者,block回调,nstimer,nsrunloop,空间约束,第三方使用等 详细过程: 一.布局 :使用 storyBoard 布局 1.歌曲列表界面:使用 TableViewContro

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

1.本教程仅供个人学习用,禁止用于任何的商业和非法用途,如涉及版权问题请联系笔者删除. 2.随笔系作者原创文档,转载请注明文档来源:http://www.cnblogs.com/apresunday/p/8448126.html,谢谢 小八这几天正在学习微信小程序的开发,于是想在学的同时能开发出来一个关于音乐的项目,但是问题在于音乐这东西.一方面是数据量太大,第二个方面就是牵扯到很多的版权的问题,所以笔者就想着借助于目前市面上的音乐播放器上的音乐文件,鉴于酷狗音乐上边的歌多而且比较的全面,在此就

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

github地址:https://github.com/wzpziyi1/MusicPlauer 这个medo,关于歌曲播放的主要功能都实现了的.下一曲.上一曲,暂停,根据歌曲的播放进度动态滚动歌词,将当前正在播放的歌词放大显示,拖动进度条,歌曲跟着变化,并且使用Time Profiler进行了优化,还使用XCTest对几个主要的类进行了单元测试. 已经经过真机调试,在真机上可以后台播放音乐,并且锁屏时,显示一些主要的歌曲信息. 首页: 歌曲内部播放: 当拖动小的进度条的时候,歌曲也会随之变化.

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

我的微信开发者工具 开篇语 好不容易,终于把所有的基础课程全部看完了!昨天,我很高兴地开始了看别人做的项目进行深度的学习.其实也说不上是项目吧,更多的像是一种给新手看的示例代码.然后我在这些代码上面进行我自己的改进.最后也就有了接下来我会给大家带来的这篇文章中的项目.这个项目是完整的,它包括了一个原本的示例代码中带着的莫名其妙的动画组件(可能是为了更多额展示微信小程序的控件体系)以及跑步的组件,还有我后来自己加上去的一个音乐播放组件.总共也就有了三个的功能:动画效果展示:跑步的定时以及定位功能:

Android 简易音乐播放器

效果图: 1.获取本地音乐 2.播放音乐 MediaPlayer 音乐播放类 MediaPlayer其实是一个封装的很好的音频.视频流媒体操作类,如果查看其源码,会发现其内部是调用的native方法,所以它其实是有C++实现的. 既然是一个流媒体操作类,那么必然涉及到,播放.暂停.停止等操作,实际上MediaPlayer也为我们提供了相应的方法来直接操作流媒体. void statr():开始或恢复播放. void stop():停止播放. void pause():暂停播放. 通过上面三个方法

HTML5之audio实战,网页音乐播放器开发

今天我们就基于 HTML5 audio  来,开发一个网页音乐播放器. 在HTML5 新特性中,audio .video 是我们比较关心的 新 元素,我们终于可以脱离 Flash ,来开发音频.视频播放器了,对于 一个HTML 新元素,无非就是 属性.事件 .方法等等,关于audio 的具体的属性.事件 .方法,请谷歌. 看我们的HTML代码: audio.html <!DOCTYPE html> <html> <head> <meta charset="

android音乐播放器开发教程

android音乐播放器开发教程 android音乐播放器开发教程,布布扣,bubuko.com