简单本地音乐播放器

//

//  ViewController.m

//  AudioPlayer

//

//  Created by apple on 14-7-18.

//  Copyright (c) 2014年 苹果IOS软件开发者. All rights reserved.

//

#import "ViewController.h"

#import <AVFoundation/AVFoundation.h>

@interface ViewController ()<AVAudioPlayerDelegate>

{

AVAudioPlayer *player;

NSArray *playlist;

long int index;

UIImageView *imageview;

NSTimer *timer;

}

@property (weak, nonatomic) IBOutlet UISlider *didclickedPorgress;

@property IBOutlet UILabel *label;

@end

@implementation ViewController

- (void)createLabels

{

_label=[[UILabel alloc] initWithFrame:CGRectMake(50,360,220,20)];

_label.textColor=[UIColor whiteColor];

_label.textAlignment = NSTextAlignmentCenter;

[self.view addSubview:_label];

}

- (void)createbjview

{

//设置音量图标

UIImageView *volimageview = [[UIImageView alloc] initWithFrame:CGRectMake(0, 15, 64, 64)];

volimageview.image = [UIImage imageNamed:@"vol"];

[self.view addSubview:volimageview];

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

imageview.image = [UIImage imageNamed:@"0"];

[self.view addSubview:imageview];

[self.view sendSubviewToBack:imageview];}

-(void)createButtons

{

//1.播放/暂停按钮

UIButton *playorstopbtn = [UIButton buttonWithType:UIButtonTypeCustom];

//设置按钮的图片

[playorstopbtn setImage:[UIImage imageNamed:@"play"] forState:UIControlStateNormal];

[playorstopbtn setImage:[UIImage imageNamed:@"pause"] forState:UIControlStateSelected];

playorstopbtn.frame = CGRectMake(128, 410, 64, 64);

[playorstopbtn addTarget:self action:@selector(didclicked:) forControlEvents:UIControlEventTouchUpInside];

playorstopbtn.adjustsImageWhenHighlighted =FALSE;

[self.view addSubview:playorstopbtn];

//2.上一曲/下一曲按钮

UIButton *nextbtn = [UIButton buttonWithType:UIButtonTypeCustom];

[nextbtn setImage:[UIImage imageNamed:@"next"] forState:UIControlStateNormal];

nextbtn.frame = CGRectMake(224, 410, 64, 64);

[nextbtn addTarget:self action:@selector(didnextclicked:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:nextbtn];

UIButton *prevbtn = [UIButton buttonWithType:UIButtonTypeCustom];

[prevbtn setImage:[UIImage imageNamed:@"prev"] forState:UIControlStateNormal];

prevbtn.frame = CGRectMake(32, 410, 64, 64);

[prevbtn addTarget:self action:@selector(didprevclicked:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:prevbtn];

}

- (void)didclicked:(id)sender

{

UIButton *playorstopbtn =(UIButton *)sender;

//判断当前的播放状态

if(player.playing)

{

playorstopbtn.selected = NO;

[player pause];

}

else

{

playorstopbtn.selected = YES;

[player play];

}

}

- (void)didnextclicked:(UIButton *)sender

{

if (player.playing)

{

if (index == playlist.count-1)

{

index = 0;

}

else

{

index++;

}

[self play];

}

else

{

if (index == playlist.count-1)

{

index = 0;

}

else

{

index++;

}

[self play];

[player stop];

}

NSLog(@"The next song");

}

- (void)didprevclicked:(UIButton *)sender

{

if (player.playing)

{

if(index==0)

{

index=playlist.count-1 ;

}

else

{

index=index-1;

}

[self play];

}

else

{

if(index==0)

{

index=playlist.count-1 ;

}

else

{

index=index-1;

}

[self play];

[player stop];

}

NSLog(@"The previous song");

}

-(void)refreshProgress

{

self.didclickedPorgress.value =player.currentTime /player.duration;

}

- (IBAction)didvolumechanged:(UISlider *)sender {

player.volume = sender.value;

}

- (IBAction)didprogresschanged:(UISlider *)sender {

player.currentTime =sender.value *player.duration;

}

- (void)viewDidLoad {

[super viewDidLoad];

[self createbjview];

[self createLabels];

[self createButtons];

playlist [email protected][@"给我一个理由忘记",@"拯救",@"后会无期"];

[self play];

[player stop];

}

- (void)play

{

//显示专辑图片

NSString *imageName =[NSString stringWithFormat:@"%ld.jpg", index];

imageview.image=[UIImage imageNamed:imageName];

NSString *name = playlist[index];

//    显示歌名

_label.text=[NSString stringWithFormat:@"%@",playlist[index]];

//获取本地音乐的文件路径

NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:@"mp3"];

//将文件读入内存中

//    NSData *data = [NSData dataWithContentsOfFile:path];

//创建一个播放器对象

//player = [[AVAudioPlayer alloc] initWithData:data error:nil];

//网络地址用下面的方法

//[NSURL URWithString:@"http://www.baidu.com"];

//    //从文件路径生成一个url对象

NSURL *url = [NSURL fileURLWithPath:path];

//AVAudioPlayer只能播放本地文件

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

player.delegate = self;

//使能,播放速率控制,音量初始值

player.enableRate = YES;

player.rate = 1;

player.volume = 0.5;

NSLog(@"%f",player.volume);

[player prepareToPlay];

[player play];

//从currentTime开始播放

//player.currentTime = 100;

//每隔1秒调用依次refreshProgress

timer = [NSTimer scheduledTimerWithTimeInterval: 1 target:self selector:@selector(refreshProgress) userInfo:nil repeats:YES];

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

}

@end

file:///Users/apple/Desktop/屏幕快照%202014-07-23%20下午9.59.35.png

file:///Users/apple/Desktop/屏幕快照%202014-07-23%20下午10.00.05.png

file:///Users/apple/Desktop/屏幕快照%202014-07-23%20下午10.00.36.png

简单本地音乐播放器

时间: 2024-08-27 22:25:01

简单本地音乐播放器的相关文章

用H5+Boostrap做简单的音乐播放器

用H5+Boostrap做简单的音乐播放器 前言:这个是综合一下我最近在学的东西做的小Demo,到实际使用还有距离,但是用来练手巩固知识点还是不错的,最近在二刷JS书和Boostrap.css的源码,做完这个Demo也算是暂告一段落,接下来是jQuery的源码和Boostrap.js的源码,任务很艰巨呢,加油~在此就不整篇的贴代码了,如果感兴趣的小伙伴可以发消息给我,可以把代码传给你们~ 正文: 先上效果图 1.布局:Boostrap里的响应式和自适应布局是自然跑不掉的,container中嵌套

Android Mediaplayer本地音乐播放器(绑定服务)

本文章介绍MediaPlayer本地音乐播放器,而当应用程序不再位于前台且没有正在使用它的活动时,为了确保音频继续播放,我们需要建立一个服务Service. Activity与绑定服务Service之间的交互是本文章的重点(这里需要说明一点的是,Activity不能直接访问服务对象中的方法,所以才有了我们一下的介绍,这也是为服务的安全等方面的考虑). 直接上代码: 布局文件:activity_main: <LinearLayout xmlns:android="http://schemas

Android 多媒体开发学习之简单的音乐播放器

我们今天的目的是学习如何创建一个简单的音乐播放器,可支持播放,暂停,继续播放,以及进度显示,已经进度拖拽. 既然我们的目的已经很明确,那我们先分析一下: 1: 我们播放音乐的任务可以放在Activity中吗? 假设我们当前音乐播放,我们切到别的应用,这时候播放音乐的Activity所在的进程就属于后台进程,因为后台进程会由于系统资源不足时,会杀死当前进程,会导致音乐不播放了.所以采用Activity是不行的. 2:播放音乐的任务放在一个服务中,那服务有2中启动方式,应该使用那种服务? a:如果采

用PHP+H5+Boostrap做简单的音乐播放器(进阶版)

前言:之前做了一个音乐播放器(纯前端),意外的受欢迎,然后有人建议我把后台一起做了,正好也想学习后台,所以学了两天php(不要吐槽我的速度,慢工出细活嘛~)然后在之前的基础上也又完善了一些功能,所以这个Demo比之前的可以算是进阶呢~v2.0哈哈哈~感觉截图体验很不好呢,所以在美图秀秀上面做了简易的动图,大家感受感受 正文: 老规矩,先上图~感觉有点卡,愿意等的就等等嘛,不愿意等的,往下看,有图片讲解 功能实现: 1.点击音乐列表播放音乐 2.拖动或点击进度条,调节音乐播放进度 3.浮动到音量控

新手作品~~~简单版音乐播放器

为了完成别人交给的小任务,作为一个新手看了很多的视频教程,实在是难死宝宝了,好在终于找到一篇合适我的布局的关于音乐播放器布局的文章,所以用了两天,就照猫画虎的学了下来,为了完全适配我的布局文件,删删减减,查了很多资料....才算是搞出个基本样子,废话不多说,直接上代码和效果图,新人作品,不喜勿喷. 功能很简单: 1.扫描sd卡内的音乐文件,将扫描到的音乐文件加载到音乐列表中. 2.点击音乐列表,实现播放音乐的功能 3.点击播放控制按钮(播放/暂停 上/下一曲)实现相关功能 首先是三个Java文件

ios 简单的本地音乐播放器

一.导入资源文件 二.新建一个控制器,继承于UITableViewController,用来展示播放列表 1.播放列表的实现 @interface MusicListViewController (){ //定义一个播放列表数组 NSMutableArray *musicList; } - (void)viewDidLoad { [super viewDidLoad]; //调用解析文件类方法,得到播放列表 musicList=[MusicModel allMusics]; } - (NSInt

使用Service组件实现简单的音乐播放器功能 --Android基础

1.本例利用Service实现简单的音乐播放功能,下面是效果图.(点击开始播放开启服务,音乐播放,点击“停止播放”关闭服务,音乐停止播放.) 2.核心代码: MusicService.java: package thonlon.example.cn.servicedemo; import android.app.Service;import android.content.Intent;import android.media.MediaPlayer;import android.net.Uri

Android课程---简单的音乐播放器

第一个:用Activity实现 activity_music_play1.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" androi

Android——用Activity和Service实现简单的音乐播放器

一.只用Activity xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="mat