基于iphone6的音乐播放器的设计与开发说明书大学本科毕业论文.doc
《基于iphone6的音乐播放器的设计与开发说明书大学本科毕业论文.doc》由会员分享,可在线阅读,更多相关《基于iphone6的音乐播放器的设计与开发说明书大学本科毕业论文.doc(42页珍藏版)》请在咨信网上搜索。
*************毕业设计说明书(论文) 基于iPhone 6的音乐播放器 摘 要:本系统是一个运行在iPhone手机上基于iOS 6.0的音乐播放器,主要功能包括本地音乐播放、网络音乐下载、网络音乐搜索、MV播放及系统设置等。其中,播放子系统具备循环播放、顺序播放、单曲循环、顺序选取、暂停、录音及歌词显示等功能。 该音乐播放器是在Xcode 4.6.2 SDK上开发的。Xcode是苹果公司向开发人员提供的运行在苹果公司的Mac操作系统下的用于开发Mac OS、 iOS应用程序的集成开发环境。Mac OS是一套运行于苹果Macintosh系列电脑上的操作系统,而iOS是由苹果公司开发的手持设备操作系统。iOS的主要开发语言是Objective-C。它是一种通用的、高级的、面向对象的编程语言。本系统的服务器服务环境是用MAMP搭建的。MAMP是一款专为开发人员设计的,用于在Mac OS X 上创建本地服务器环境的软件。 关键词:iPhone;iOS;Xcode;Mac OS;MAMP;音乐播放器 The Music Player Based on IPhone 6 Abstract: This system is a music player based on the iOS 6.0, which can be run on the iPhone. The main functions include playing the local music, downloading the online music, searching the music online, playing the MV and changing setting systems. Among them, the function of playing music includes playing music in the loop, order selection, pause, recording and displaying the lyrics. This music player is developed on the Xcode 4.6.2 SDK, which is a integrated development environment provided by the apple for the developers to develop the applications for Mac OS, iOS on the Mac. Mac OS is an operating system running on the Apple Macintosh computers. IOS is an operating system developed by Apple only for the handle devices. The main development language is Objective-C, which is an universal, advanced, object-oriented programming language. The server environment for this system is created using MAMP, which is a software designed for the developers to build a local server environment on the Mac OS X. Keywords:IPhone;IOS;Xcode;Mac OS;MAMP;Music player 2 目 录 前 言 1 第1章 关键技术简介 2 1.1 iOS简介 2 1.2 Objective-C 2 1.3 Xcode 3 1.4 MAMP 3 1.5 MVC模式概述 4 第2章 系统分析 6 2.1 需求分析 6 2.1.1 系统总体功能需求 7 2.1.2 播放子系统功能需求 7 2.1.3 用户界面需求 8 2.2 可行性分析 9 2.2.1 经济可行性 9 2.2.2 技术可行性 10 2.2.3 社会可行性分析 10 第3章 总体设计 11 3.1 播放器总体设计 11 3.2 服务器功能模块设计 12 3.3 数据库设计 12 第4章 详细设计与实现 13 4.1 开发环境配置 13 4.1.1 服务器配置 13 4.1.2 数据库创建 15 4.1.3 服务器功能展示 16 4.2 客户端设计与实现 18 4.2.1 首页 18 4.2.2 本地列表 20 4.2.3 播放页面 21 4.2.4 网络列表 22 4.2.5 MV播放列表 23 4.2.6 系统设置页面 24 第5章 系统测试与运行 26 5.1 测试目的 26 5.2 测试方法 27 5.3 测试过程 28 5.3.1 首页按钮滑动功能测试 28 5.3.2 本地音乐播放测试 29 5.3.3 网络音乐下载测试 29 5.3.4 搜索功能测试 30 5.3.5 视频播放功能测试 31 5.3.6 歌词同步播放功能测试 31 5.3.7 录音功能测试 32 5.3.8 系统设置功能测试 33 5.4 测试总结 34 结束语 35 参考文献 36 致 谢 37 III 前 言 目前智能手机的市场竞争非常激烈,在智能手机市场中,三星持续保持了榜首的位置, 2012年第四季度的销售总额为6450万台,同比增长85.3%。与此同时,苹果的销量在2012年的最后一个季度达到4350万台,比2011年第四季度增长22.6%。双巨头垄断局势从智能手机行业延伸到操作系统。Android操作系统的智能手机在2012最后一个季度,售出近145万台,其中三星占42.5%。就整体而言,谷歌的操作系统以69.7%的市场份额占据了2012年最后一个季度的绝对优势,比2011年第四季度的51.3%有了大幅度的提高。相比之下,基于苹果iOS操作系统的iPhone,市场份额相对下降,而其下降的主要原因是iPhone平台应用软件的相对短缺。用户在App Store上找不到其需要的应用软件,最终使越来越多的消费者放弃了购买iPhone。目前,视听娱乐已成为人们生活中的基本需求,多数人喜欢在工作、生活之余,听听音乐来放松自己。而App Store上的音乐播放器少之又少,因此设计一款简约、时尚的音乐播放器显得尤为重要。 本系统主要是针对iPhone手机用户而开发的一款基于iOS 6.0的音乐播放器。为更好地满足用户的需求,首先对各个平台的音乐播放器进行了分析比较,然后根据需求分析确定本系统其主要功能为:本地音乐播放、网络音乐下载、网络音乐搜索、MV播放及系统设置等。其中,播放子系统具备循环播放、顺序播放、单曲循环、顺序选取、暂停、录音、歌词显示等功能。 本论文共分为五章: 第一章 关键技术简介:主要介绍iOS、Objective-C语言、Xcode、MAMP。 第二章 系统分析:主要讲功能需求分析、界面需求分析、可行性需求分析。 第三章 总体设计:主要写播放器总体设计、服务器功能模块设计、数据库表设计。 第四章 详细设计与实现:主要讲解开发环境的配置、数据库的建立和客户端的功能模块详细设计。 第五章 软件测试:主要写了软件测试的目的、方法与过程。 第1章 关键技术简介 1.1 iOS简介 iOS(原名:iPhone OS)是由苹果公司开发的手持设备操作系统,支持的设备包括iPhone、iPod touch、iPad以及Apple TV。iOS的系统架构分为四个层次:核心操作系统层(the Core OS layer),核心服务层(the Core Services layer),媒体层(the Media layer),可轻触层(the Cocoa Touch layer)。苹果于2007年6月29日发布了iOS的第一个版本,目前已开发到iOS 6。iOS 6拥有更完善的文本输入法,并内置了对热门中文互联网服务的支持,从而让 iPad、iPhone和iPod touch更适合中文用户使用。有了全新的中文词典和更完善的文本输入法,汉字输入变得更轻松、更快速、更准确。百度已成为Safari的内置选项,还可将视频直接分享到优酷和土豆网。也能从相机、照片、地图、Safari和Game Center向新浪微博发布信息。 iOS操作采用的是多点触控操作,控制方法包括滑动、轻触屏幕和图标及按键。操作有:滑动、轻按、缩小及放大。此外,iOS移动设备中还内置了加速器,使得旋转iOS设备时,界面也可以得到旋转,这也使得iPhone等便携设备更便于使用。自3GS开始,iPhone装备有陀螺仪,这使得iPhone有了重力感应,游戏效果更加的突出。 1.2 Objective-C Objective-C是一门基于C语言的面向对象语言,它在现代计算机中主要作用于Mac OS X作为桌面语言。Objective-C是C语言的一个超集,其主要特色与优势如下。 Objective-C不仅提供了其他面向对象编程语言中的抽象概念和运行机制,而且还是一种非常灵活的语言,这种动态性就是Objective-C的最大优势所在。这种动态性可以让应用在运行中(即“运行时”)判断其该有的行为,而不是在编译构建时就固定下来。因此,Objective-C把应用程序从编译时、链接时的限制中解放出来。Objective-C的动态性来自以下三个方面: 动态类型:可以让代码在运行时判断对象的类型。Id数据类型可以在运行时用任何数据类型来替换。所以,你可以让运行时因素来决定代码中用到的对象是什么类型。动态类型让你的应用更加灵活,这是静态类型做不到的。 动态绑定:让代码在运行时判断需要调用什么方法,而不是编译时。就像动态类型把对象的类型放到运行时再去判断一样,动态绑定把选择调用哪种方法的任务放到了运行时去完成。和其他面向对象语言一样,方法调用和代码并没有在编译时就联结结在一起,只有在消息发出时,它们才真正联结。动态类型和动态绑定的存在使得选择哪个接收者以及调用哪个方法都可以在运行时来决定。 动态载入:可以让程序在运行时添加代码模块以及其他资源。有了动态载入特性,应用可以根据需要加载一系列可执行代码以及资源,而不是在启动时就加载所有组件。这能够大大提高性能。可执行代码中可以含有和程序运行时整合的新类型。 1.3 Xcode Xcode是苹果公司向开发人员提供的运行在苹果公司的Mac操作系统下的用于开发MacOS、 iOS应用程序的集成开发环境。Xcode可以编辑由C、C++、Objective-C、Objective-C++、和Java源代码组成的工程,可以生成Mac OS X支持的所有类型的执行代码,包括命令行工具、框架、插件、内核扩展、程序包、和应用程序。 1.4 MAMP MAMP代表Macintosh、Apache、MySQL和PHP,它用于在Mac OS X 上创建一个本地Web应用开发环境。其中Macintosh简称MAC, 是苹果系列电脑中的一款个人电脑。Apache是世界使用排名第一的Web服务器。它可以运行在几乎所有的计算机平台上。由于其跨平台和高安全性而被广泛使用,是目前最流行的Web服务器软件之一。MySQL是一个快速、多线程、多用户的关系型数据库管理系统。它支持正规的SQL查询语言和采用多种数据类型,能对数据进行各种详细的查询等。PHP,是英文超文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格类似于C语言,已被广泛地运用。 MAMP分为MAMP和MAMP PRO。“MAMP PRO”是商业、专业级版本的本地服务器环境,用于 Mac OS X,为专业的web开发人员和程序员而开发。 在Mac OS X的开发环境下,MAMP PRO易于安装和管理。 使用MAMP PRO不需要复杂的配置就可以创建一个有效的测试环境。环境之间界限清楚,这可以让几个项目同时开发。为了尽可能的代表各式各样的ISP,PHP可以在不同版本间随时切换,以防止任何可能的兼容性问题。轻点几下鼠标,就可以在Mac上用MAMP作中转服务。 1.5 MVC模式概述 MVC(Model View Controller)即模型-视图-控制器。 M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。 MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。 下面来具体说明下三个部分的功能: 1.视图 视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Adobe Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services. 2.模型 模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。 3.控制器 控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器(例如:servlet)本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。 现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。 1.低耦合性。视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。 2.高重用性和可适用性。随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。所需要的仅令是改变视图层的实现方式,而控制层和模型层无需做任何改变。 3.较低的生命周期成本。MVC使降低开发和维护用户接口的技术含量成为可能。 4.快速的部署。使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。 5.可维护性。分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。 6.有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。 第2章 系统分析 2.1 需求分析 需求分析是软件开发的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。 目前,在人们的日常生活中,手机扮演着不可或缺的重要角色。上网、聊天、购物等一系列功能更是给人们带来了越来越多的便利和享受。在人们工作和娱乐的同时,听音乐也成了放松和舒缓心情的主要方式之一。 本系统主要是针对iPhone手机用户的音乐播放需求,在对各个平台的音乐播放器进行分析比较后,根据需求分析确定了本系统的主要功能为:本地音乐播放、网络音乐下载、网络音乐搜索、MV播放及系统设置等。其中,播放子系统具备循环播放、顺序播放、单曲循环、顺序选取、暂停、录音、歌词显示等基本功能。 图2-1 系统总用例图 2.1.1 系统总体功能需求 根据对各个平台音乐播放器的集中分析和汇总,并结合对广大iPhone手机用户进行调查的结果,得出本系统设计的音乐播放器的主要功能有:本地音乐播放、网络音乐下载、网络歌曲搜索、MV播放及系统设置等。其系统总体用例图如图2-1所示。 2.1.2 播放子系统功能需求 结合各平台主流音乐播放器的特点,设计得出本系统的音乐播放子系统应具有的功能有:上一首、下一首、暂停、录音、歌词显示、专辑图片显示等。其功能用例图如图2-2所示。 图2-2 播放子系统用例图 其中歌曲播放模式有顺序播放、单曲循环、随机播放等。其基本的播放模式功能用例图如图2-3所示。 图2-3 播放模式用例图 2.1.3 用户界面需求 随着技术的进步,可视化的应用程序设计语言被越来越多的广泛使用。利用可视化的程序设计语言可以设计出功能强大、操作简单、使用方便、适合不同人群和领域的应用程序。有些应用程序的用户界面设计有很强的艺术性,给人一种清晰、美观、简明、易用的感觉。因此,一个系统的用户界面设计不仅影响着其本身外观的艺术性,而且对系统的可用性也有很重要的影响。 可以说用户界面是一个应用程序最重要的一面,它直接影响程序的使用价值。对于大多数用户来说,用户界面就是他们对一个产品最初的大致了解。所以即使是一个内部设计良好但用户界面不好的应用程序,也很难得到广大用户的青睐。一致性是用户界面设计中的重要因素之一,一致性的外观体现了应用程序的协调性。如果缺乏一致性就会使界面混乱而无序,这样的界面体现不出该应用应有的价值,更可能使用户觉得该应用不可靠。 结合上述分析,本款播放器的主界面设计如下图2-4所示。整体色调采用充满生机的青绿色,简约而不失美观。功能按钮亦按简约易用的原则设计和摆放。用户通过点击界面下方tabBar上的按钮,即可在本地音乐、网络音乐、MV、设置之间进行随意切换。 图2-4 播放器主界面 图2-5 播放子系统 播放子系统的界面亦采用青绿色的色调,整体显得协调美观。具体如上图2-5所示,同时点击专辑图片左右滑动即可在歌词显示和歌手图片显示画面间自由的切换。 2.2 可行性分析 可行性分析也称为可行性研究,即是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、管理的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能解决。该系统的可行性分析包括以下几个方面的内容。 2.2.1 经济可行性 主要是对项目的经济效益进行评价。随着iPhone手机的流行,设计和开发一款能满足iPhone用户听音乐需求的播放器是十分必要的。具备音乐的搜索、下载、播放等功能的音乐的播放器是很有市场前景的。本款播放器在经济上是完全可以接受的,只要用户拥有iPhone手机 ,即可安装这款音乐播放器。所以本款播放器在经济上是可行的。 2.2.2 技术可行性 技术上的可行性分析主要分析技术条件是否能顺利完成开发工作,硬、软件能否满足开发者的需要等。软件方面,应用程序开发所需要的各种软件环境都已具备,服务器方面则有MAMP,安装管理都很方便。其包括的PHP和MySQL的灵活性、安全性和易用性都为服务器端的设计和代码编写提供了良好的条件。因此,系统软件开发平台已成熟可行。硬件方面,拥有一台Mac 或Mac Book即可,本人已拥有一台Mac Book。因此,系统硬件开发平台已成熟可行。 2.2.3 社会可行性分析 本应用程序为独立开发,在技术上没有使用任何现有的软件与方法。所以在法律方面不会存在侵犯专利权、侵犯版权等问题,完全符合规定。 第3章 总体设计 3.1 播放器总体设计 根据需求分析和功能用例图,分析得出本播放器功能模块主要如下四个部分:本地列表、网络列表、MV列表、设置。具体功能设计如下图3-1所示。 图3-1 播放器功能模块图 具体功能描述如下: (1) 本地音乐播放功能:对保存在本地的歌曲进行播放。 (2) 网络音乐下载功能:网络上的音乐可以下载保存到本地。 (3) 网络歌曲搜索功能:在网络歌曲列表中查找自己想要听的歌曲。 (4) 歌词同步显示功能:播放音乐的时候同步显示歌词。 (5) MV播放功能:播放已下载的MV。 (6) 录音功能:录制音频并可以回放。 (7) 系统设置功能:设置是否自动下载歌词、是否自动下载专辑图片等。 3.2 服务器功能模块设计 为配合上述播放器的功能设计,服务器端设计分为如下3个功能模块:歌曲分类、歌曲列表显示、歌曲录入。如图3-2所示。 图3-2 服务器模块图 具体功能描述如下: (1) 歌曲分类功能:对歌曲进行分类,如新歌、经典老歌等,方便用户分类查找。 (2) 歌曲列表显示功能:显示上传到服务器的所有歌曲,并可以删除已上传的歌曲,和试听已存在的歌曲。 (3) 歌曲录入端口功能:录入歌曲名称、歌手名,上传歌手图片、歌曲资源到服务器。 3.3 数据库设计 根据上述服务器功能模块图,结合播放器的的功能,分析、设计得出如下表3-1所示的系统数据库表。 表3-1 歌曲属性表(music_list) 字段名称 类型 是否为空 是否自增 是否主键 注释 id int(10) √ √ 序号 m_id varchar(20) 歌曲id m_file_name varchar(100) 歌曲路径 m_file varchar(100) 歌曲名 m_who_song varchar(20) 歌手名 m_who_image_name varchar(100) 专辑图片 m_downloads int(10) 下载量 m_time int(10) 上传时间 m_size varchar(20) 歌曲大小 第4章 详细设计与实现 4.1 开发环境配置 客户端环境: (1)Mac OS X 10.8.2 操作系统 (2)Safari 6.0.1浏览器及其兼容浏览器 (3)开发工具:Xcode 4.3.2 (4)开发语言:Objective- C (5)硬件环境:CPU主频为2.5 GHz及以上,内存4 GB及以上 服务器环境: (1)操作系统:Mac OS X 10.8.2 操作系统 (2)数据库系统:MySQL (3)开发语言:PHP (4)开发工具:MAMP 2.0.5 (5)硬件环境:CPU主频为2.5 GHz及以上,内存4 GB及以上 4.1.1 服务器配置 安装好MAMP后,在Finder中选择应用程序,点击MAMP,选择Launch MAMP PRO,即可启动MAMP配置。如图4-1所示。 图4-1 Launch MAMP PRO 点击Hosts添加本地地址127.0.0.1,如图4-2所示。 图4-2 Hosts本地地址配置 点击Server修改Apache端口号为80,如图4-3所示。 图4-3 Apache端口配置 经过上述两部操作,服务器即已配置好。点击右上角的start按钮,即可开启Apache和MySQL,如图所4-4示。 图4-4 启动MAMP PRO 4.1.2 数据库创建 此时点击WebStart开启服务器,点击PHPMyadmin在新建数据库的位置新建数据库。注意整理那一项要选择utf8_general_ci,使其与下面MySQL连接校对的地方相同,如图4-5所示。 图4-5 新建数据库 当数据库建立好之后,便可以在数据库中建立数据表了,本系统建立了如下两张数据表,如图4-6所示。 图4-6 系统数据表 4.1.3 服务器功能展示 整个服务器共分为3部分,第一部分是歌曲的分类,如新歌、经典老歌等。其可以添加歌曲的分类,也可以删除或重命名已有的歌曲分类,如图4-7所示。 图4-7 歌曲分类 第二部分是歌曲的列表显示。其可以删除已有的歌曲,可以查看这首歌曲的详情,还可以试听,如图4-8,4-9所示。 图4-8 歌曲列表 图4-9 歌曲详情 第三部分是歌曲录入端口,选择歌曲类型,输入歌手名,上传专辑图片和歌曲资源即可完成音乐的上传,如图4-10所示。 图4-10 歌曲录入端口 4.2 客户端设计与实现 客户端设计属于详细设计。详细设计是软件工程中软件开发的一个步骤,就是对概要设计的一个细化,就是详细设计每个模块实现算法,所需的局部数据结构。详细设计的目标有两个:实现模块功能的算法要逻辑上正确、算法描述要简明易懂。 在总体设计部分已确定了本款音乐播放器的各功能模块,结合界面设计原则,在此部分将对各功能模块的具体用户界面设计和详细功能设计进行细化、并编写代码实现。 4.2.1 首页 如图4-11所示,为本款音乐播放器的首页。其实现方法使用了iCarousel控件。这使得用户只要用手指在本地音乐、网络音乐、MV和设置模块之间进行轻松滑动,即可实现不同功能的自由切换。同时通过轻轻点击即可进入相应的具体功能模块。 图4-11 首页图 4-12 本地播放列表 iCarousel控件的使用可以增加用户的体验感受,具体代码如代码4-1所示。 #pragma mark iCarousel methods //显示每个iCarousel的内容,如标题,图片 -(UIView*)carousel:(iCarousel*)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view { UIButton *button = nil; UIImageView *imgaeTY=nil; FXLabel *label = nil; //create new view if no view is available for recycling if (view == nil) { //设置view大小 view =[[UIView alloc]initWithFrame:CGRectMake(0,0, 500, 600)]; view.backgroundColor=[UIColor clearColor]; [view setFrame:CGRectMake(0, 0, 200, 340)]; imgaeTY = [[UIImageView alloc] initWithFrame:CGRectMake(0, 20, 210, 247)]; // [imgaeTY setImage:[UIImage imageNamed:@"page"]]; button = [[UIButton alloc]initWithFrame:CGRectMake(0, 80, 180, 200)]; label = [[FXLabel alloc]initWithFrame:CGRectMake(40, 20, 180,100)]; label.numberOfLines = 3;//设置行数 label.textColor = RGBA(0, 120, 125, 1); label.backgroundColor = [UIColor clearColor]; // NSString *title = [self exchangeNumberToString:index]; //label的内容可以分别来设置 label.text =[NSString stringWithFormat:@"%@",[arrList objectAtIndex:index]]; label.font = [UIFont fontWithName:@"Arial-BoldMT" size:20]; //图片内容 NSString *number = [NSString stringWithFormat:@"%d",index+1]; if (index<9) { number = [NSString stringWithFormat:@"0%d",index+1]; } [button setImage:[UIImage imageNamed:[NSString stringWithFormat: @"竖条%@",number]] forState:UIControlStateNormal]; button.tag = carousel.currentItemIndex; [button addTarget:self action:@selector(buttonTouched:) forControlEvents:UIControlEventTouchUpInside]; [view addSubview:imgaeTY]; [view addSubview:button]; [view addSubview:label]; }else{ button = [[view subviews] lastObject]; } return view; } 代码4-1 iCarousel控件实现 4.2.2 本地列表 本地列表用于显示用户当前所拥有的本地歌曲。如图4-12所示,为当前已下载在本地的歌曲列表,上下拖动即可以实现列表的滑动,这让用户可以轻松自如的浏览当前歌曲列表或查找想听的音乐。在本模块实现方法中,使用了tableView及tableViewCell控件。通过其实现歌曲信息的显示,如歌曲名,歌手名等。 具体实现代码如代码4-2所示。 //设置每个cell显示的内容 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSUInteger section = [indexPath section]; NSUInteger row = [indexPath row]; NSString *key = [mArray objectAtIndex:section]; NSArray *nameSection = [names objectForKey:key]; static NSString *cellIndentifier=@"fdsff"; ListCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIndentifier]; if (cell==nil) { NSArray *nibArray=[[NSBundle mainBundle] loadNibNamed:@"ListCell" owner:self options:nil]; cell=[nibArray objectAtIndex:0]; } AudioFile *audio=[mArray objectAtIndex:indexPath.row]; audio.cellIndexPath=indexPath; NSString *num; if (indexPath.row<9) { num = [NSString stringWithFormat:@"00%d、",indexPath.row+1]; }else if ( indexPath.row<99) { num = [NSString stringWithFormat:@"0%d、",indexPath.row+1]; }else{ num = [NSString stringWithFormat:@"%d、",indexPath.row+1]; } cell.MusicNameLabel.text=[NSString stringWithFormat:@"%@%@", num,audio.auName]; cell.SingerLabel.text=audio.ausinger; cell.selectmp3Object=audio; cell.textLabel.text = [nameSection objectAtIndex:row];//显示每个label的内容 cell.btnAccessory.hidden=YES; return cell; } 代码4-2 本地列表cell设置 4.2.3 播放页面 播放页面一般是用户停留时间最多的页面,因此播放页面的用户界面设计就显得尤为重要。简洁明了,而又不失优雅是本次系统界面设计的基本原则。基于此而设计的播放页面如下图4-13所示。在此页面,用户可以进行上一曲、下一曲、循环播放、随机播放、单曲循环、查看歌词等操作。需要的时候,通过点击录音按钮即可以轻松录制自己想唱的歌曲。同时也支持后台播放功能。 图4-13 音乐播放页面 图4-14 网络列表 具体实现代码如代码4-3所示。 //真机后台播放,锁屏播放 [[AVAudioSession sharedInstance]setCategory:AVAudioSessionCategoryPlayback error:nil]; [[AVAudioSession sharedInstance]setActive:YES error:nil]; [[UIApplication sharedApplication]beginReceivingRemoteControlEvents]; //获得下一首歌曲的指针 -(void)next { if (selectedIndex<soundFilesArray.count-1) { selectedIndex++;- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 iphone6 音乐 播放 设计 开发 说明书 大学本科 毕业论文
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文