




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
分类号 论文选题类型 U D C 编号 本科毕业论文(设计)题 目 基于Android的教学视频资源个性化推送研究 学 院 物理科学与技术学院专 业 通信工程 年 级 2012 学生姓名 学 号 指导教师 二一六 年 五月1华中师范大学学位论文原创性声明本人郑重声明:所呈交的学位论文是本人在导师指导下独立进行研究工作所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。学位论文作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权省级优秀学士学位论文评选机构将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于1、保密 ,在_年解密后适用本授权书。2、不保密 。(请在以上相应方框内打“”)学位论文作者签名: 日期: 年 月 日导师签名: 日期: 年 月 日目录内容摘要5关 键 词5Abstract5Key Words61 绪论71.1课题研究背景及课题意义71.2国内外研究现状81.3论文组织安排92系统概要设计102.1系统概述102.2系统功能需求分析102.3系统架构设计112.4系统功能模块设计122.5系统数据库设计142.6本章小结173 相关理论研究和技术实现183.1个性化推荐的实现研究183.2前端设计实现223.3后台事件处理243.4本章小结294 系统实现304.1开发环境的搭建304.2核心功能模块实现314.3其他功能模块实现364.4本章小结385 结束语39参考文献40内容摘要:当今社会高校学生的学习模式越来越倾向于自主式学习和研究性学习,网络资源成为学生在这种模式下学习的首要辅助手段。但是网络资源过度的丰富性导致学生无法在第一时间准确抓取自己需要的教学资源进行学习,反而成为了学生在使用网络资源这一辅助手段的最大障碍。本文则针对这一障碍进行了教学视频资源的个性化推送研究。 本文第一章综述了本课题的研究意义以及个性化推荐的国内外研究现状;第二章针对教学视频的个性化推荐进行了系统功能需求分析,并对该系统进行了概要设计,进行系统概要设计时先对系统进行架构设计,然后针对系统要实现的功能进行了系统功能模块设计,最后是进行数据库设计;第三章研究了个性化推荐算法的技术实现,首先对现有的个性化算法进行对比研究,其次针对本系统进行了前台和后台实现的介绍;第四章是系统的实现部分,依次测试系统的各项功能是否达到预期效果,验证系统的可用性。 用户可以登录该系统进行教学视频搜索和观看学习,同时可以查看资源推荐列表中的视频资源进行观看学习,对于观看后的视频可以进行评分或评论操作,具有一定的实用价值。 关 键 词:个性化推荐 教学视频 Android 社会标签 信息系统全套设计加扣 3012250582Abstract:With the development of information technology,the learning model of university student has been the independent study and the investigative study,and network resource has been the main supplementary means of study.But because of the richness of the network resources, university students cannot capture the essential learning videos they need at the first time and this problem becomes the biggest obstacle for students to use the network resources.This article aims at the study of the personalized recommendation about teaching video resources to solve the problem.At first,this article Illustrates the research significance and the domestic and foreign research situation of this topic.Secondly,we analyzes the function demand of the system,and we have the function module design and database design about this system,and then we analyzed the system architecture.Thirdly,we studied the personalized recommendation algorithm and other theoretical technology.Lastly,we tested the main function modules of the system and Verified the availability of the system.Users can log in the system to search and watch the teaching videos. At the same time, users can look through and watch the videos in the recommended list and they also can rate or comment about the video.Users can log in the system to watch the video resources for independent learning in anytime and anywhere. The system proved the utility. Key Words:Personalized Recommendation Teaching Video Android Social tagging Information system 1 绪论1.1课题研究背景及课题意义随着信息技术的发展,互联网正经历着前所未有的飞速变化。特别是在移动互联网领域,在知识爆炸的时代,传统课堂的学习模式已经不能满足人们的需要,自主学习和终身学习成为新时代对学习者的要求。互联网的发展以及智能设备的普及,更加方便了人们的学习生活,学习模式更倾向于自主式学习和研究性学习,移动学习成为满足人们自主学习的一种重要途径。互联网给人们提供了丰富而强大的网络资源,这些网络资源以文字、图像、音频、视频等形式呈现,带给人们更加便捷的学习和生活体验。与此同时,网络资源过度的丰富性使得人们在检索信息时无法第一时间捕捉到需要的信息,反而在筛选有用信息的过程中浪费大量的时间,也就是出现信息检索中常见的“信息迷航”问题。在这种背景下,我们希望在资源检索中能快速获取所需要的信息,避免“信息迷航”问题。个性化推送能够在很大程度上解决此类情况,应用个性化推送技术建立用户兴趣模型,与视频资源库里的内容进行个性化匹配,将用户感兴趣的内容进行个性化推送,这样就避免了用户在检索资源时处理大量不相关信息的尴尬,提高了资源检索的效率。移动学习是人们自主学习的重要方式,在移动学习中引入个性化推送技术,可以提高学习的效率,带来更好的用户体验。个性化推送技术的发展使得便捷高效的移动学习成为可能。 综上所述,在大数据背景下的当今社会,我们的学习模式将逐渐倾向于具有自主学习特点的移动学习模式,而个性化推送技术的实现无疑能提高人们自主学习的效率。教学视频资源个性化推送研究由此展开。 1.2国内外研究现状移动学习是在当今信息时代下逐渐流行起来的自主化学习模式,学习者可以通过移动客户端软件获取学习资源,享受随时随地的学习体验。国外对于移动学习的探讨进行的比较早,1994年卡内基梅隆大学就移动学习课题进行了名叫“WirelessAndrew”的项目,学生可以在校园内享受无限通信技术支持下的移动学习带来的便利。还有2001年欧洲“下一代学习“项目等,关于移动学习的研究使得随时随地掌上学习的想法得以实现。网络资源的过度丰富给人们在信息检索方面造成了很多困扰,用户在搜索资源时往往在一堆无用信息里进行检索,浪费大量时间。个性化推送技术的出现可以解决这个问题,根据用户的兴趣爱好,应用个性化推送技术对用户进行相关内容的推荐,来解决当前资源搜索中的尴尬问题。国外关于个性化推送系统的研究始于1995年,第一个个性化推送系统的研究是在卡内基梅隆大学提出的,这个个性化系统名字叫Web Watcher,能给人们提供便利的导航任务。除了Web Watcher的研究之外, Litizia也是较早研究的个性化推送项目,它是由麻省理工学院提出的一个个性化导航体系,也能给用户带来方便的个性化体验。从1995年至今,个性化推荐系统已有了近20年的发展史。现在国外的个性化推荐系统比较成熟了,虽然也不乏有像斯坦福大学的fab,lira,麻省理工的letizia,卡内基梅隆的webwatcher这样不错的系统,但是关于教育类的推荐系统还是相对比较落后的。我国对于个性化推荐系统的研究相比于国外算是比较晚的,但是发展速度也极快,我们比较熟悉的国内的应用个性化推送系统的网站,比如说Kingbase DL系统、中国互动出版社、知名购物网站麦包包、凡客诚品、红孩子等,当当,京东、淘宝等各大电商网站也都有自己的个性化推荐系统,电商迅速发展的时代推动了个性化推送技术的发展,我们可以看到个性化推送技术越来越多的应用到人们的生活中。但是在教育方面,特别是教育视频方面,个性化推荐系统的应用似乎大不如在电商上面的应用,而且它在网站网页上的应用也远远比移动平台上的应用广泛得多。综上所述,移动学习和个性化推送服务都有了较深入的发展。在信息爆炸的今天,人们的学习更倾向于随时随地获取信息的移动学习,将移动学习与个性化推送相结合,实施快速便捷的移动平台的个性化推荐系统势在必行。1.3论文组织安排本论文的主要研究内容是基于Android的教学视频资源个性化推送系统,主要研究思路如下图所示:图1.1 论文研究思路本文共分为五章。第1章 首先介绍了教学视频资源的个性化推送,以及大数据时代下教学视频个性化推送的研究背景和课题意义,最后详细给出了国内研究现状分析。第2章 主要进行了系统概要设计,首先对根据系统所要实现的功能进行需求分析,接着阐述了系统架构设计,由功能需求分析出发给出了系统功能模块设计,最后给出了系统数据库的设计,为以后章节作指导。第3章 主要进行相关理论研究和技术实现,首先根据目前常见的个性化推送算法进行个性化推送技术的对比研究,进行基于内容、基于协同过滤的个性化研究以及打标签模式的推送研究,详细阐述了该系统的理论研究要点。第4章 主要是系统实现部分。首先介绍了开发环境的搭建,接着详细阐述了关键功能模块的实现与测试,从而验证了系统的可行性。第5章 对全文进行了总结,并给出了该系统的研究展望。2系统概要设计2.1系统概述 (1)系统目标为了方便高校学生的课下自主学习,提高网络资源对学生的学习帮助的有效性,使教师在课堂外教学更加便捷,该系统的主要目标是设计一种教学视频资源个性化推荐系统。以数据结构这一门课程为例,用户可以登录该系统,通过搜索查到网络数据库中所有有关数据结构课程的相关视频,并进行点击播放,系统也可以对用户注册时填写的资料信息,比方专业为电子科学与技术,和用户的活动记录,比如用户阅读的多为放大器想干内容,构成用户的兴趣模型,通过匹配推荐算法形成针对用户的个性化推荐列表,比如与用户兴趣匹配程度高的集成运算放大器等内容,对用户进行有选择地推荐课程视频。 (2)应交付成果 系统开发完成后,交付的内容如下:l 系统开发完整代码l 在Android智能手机上可以运行的教学视频资源个性化推荐系统l 毕业论文 2.2系统功能需求分析该系统的主要功能,是为学生提供一个网络教学视频资源播放和与用户兴趣相关的教学视频资源主动推送的平台。本系统的核心业务主要由注册登录、资源浏览功能、视频播放功能、评分评价功能、查看推荐列表功能、个人资料管理功能以及系统设置功能组成。用户启动系统后,首先进入登录界面,通过选择“登录”(新用户选择“注册”按钮)进入系统。进入系统后显示系统主页面,包括“搜索”按钮、“查看推荐”按钮。选择“搜索”的用户可以搜索关键字获得想要的教学视频资源,并点击“播放”按钮进行播放。选择“查看推荐”的用户可以获得推荐列表,并从推荐列表中选择视频进行播放。用户可在播放视频下面进行“打分”,或者进行文字评论。图2.1 系统功能流程图2.3系统架构设计 该系统采用C/S架构,即客户端、服务器架构。应用C/S架构的优点是可以将系统要处理的任务分开,客户端和服务器端各分担一部分工作,这样就实现了任务的分离,也就降低了通信所需要的开销。客户端完成数据处理、数据表示以及用户接口功能;服务器端完成数据库的核心功能,客户端响应速度快。客户端可以直接访问数据库服务器端,系统架构如下图: 图2.2 系统架构图表示层:该层主要是界面设计,是系统实现统一界面布局,有利于界面的维护和扩展。系统给用户提供人机交互的友好界面,给用户带来人性化的体验。业务逻辑层:该层通过不同的功能模块封装各种业务操作,使得操作简便,代码利用率提高。数据访问层:该层主要完成的功能是对数据库的访问,即实现对数据表的一系列操作,主要实现的功能包括读取数据和传递数据。数据库层:主要存储系统中的数据信息,存储视频资源的名称、大小、评分、评价等信息。2.4系统功能模块设计通过功能需求分析,基于Android的教学视频资源个性化推送系统主要实现的功能有登录注册功能、视频播放功能、资源检索功能、评分评价功能、个人信息管理功能和推荐列表等功能,如图所示。图2.3 系统功能流程图登录注册模块:根据系统的功能需求,登录注册界面要完成的作用是用户的登录和注册。用户进入该界面后,输入有效的用户名和密码登录该系统;若用户未注册,需点击注册新账号按钮,跳转到用户注册界面。资源检索模块:用户可在该模块浏览相关的视频资源,在视频资源列表里将显示视频的一些基本信息,如视频名称、大小、缩略图、评分、评价等信息。用户点击视频可以该视频进行观看操作。视频播放模块:用户可在该模块观看视频资源,并且对观看的视频进行相应的控制。该模块有进度条控制键、音量控制键、视频切换控制键、暂停控制键、返回主菜单控制键等操作键,用户可以拖动进度条控制视频播放进度,点击音量调控按钮可以实现声音的控制,点击“上一个”、“下一个”按钮实现视频的切换,点击暂停键可以暂停正在观看的视频,点击返回主菜单按钮可以回到主菜单,视频播放过程中控制键将隐藏,点击屏幕即可重新出现。推荐列表模块:该模块将向用户呈现系统推荐的视频资源,推荐视频以推荐列表的形式推荐给用户。列表中将显示推荐视频的基本信息,如推荐视频的名称、大小、缩略图、评分、评价等信息。个人信息模块:该模块将会显示用户名、密码、兴趣爱好等用户的基本信息,同时如果用户兴趣发生改变可以在该模块编辑个人信息,如更改个人的兴趣爱好后,系统向用户推荐的视频内容将随之改变。评分评价模块:用户观看视频后可以对该视频进行评分评价操作,用户长按某视频即可进入评分评价对话框,点击评分按钮可对视频进行评分操作,点击评价按钮可对视频进行评价操作,用户评分评价的内容将在视频信息里呈现。系统设置模块:该模块可以实现对系统的一些基本操作,如语言设置、背景设置、按键设置等。点击语言设置按钮可以选择系统的语言,根据用户的习惯用语,本系统配置了三种语言:简体中文、繁体中文以及英文,用户可根据个人习惯自由切换。点击背景设置按钮可以对背景音乐进行设置,这里有背景音乐开关两种选项。点击按键设置可以对按键音乐进行操作,这里有按键音乐开关两种选项。2.5系统数据库设计 根据系统需求分析和设计,下面将进行的设计。在数据安全、查询优化以及效率方面和经济成本的综合考虑后,本系统的数据库选用了MySQL关系数据库以及采用 navicat for MySQL开发工具,建立数据库名为RecVideo。将创建好的各个表进行关联,得到的关系图如下图2.4所示。图2.4数据库表间关系图本系统数据库共设计了7张表,用户表、视频表、推荐视频表、评论表、打分表、视频类型表、用户相似度表。其中用户相似度表的作用是记录两个用户之间的相似度,通过打分表和评论表记录用户对视频的评分和评论,通过视频类别表存储视频的类型关键词。其中主要表的具体设计如下:(1) Video是视频表,VideoID是主键,用来存放教学视频资源。表2.1视频表字段名称字段类型字段长度允许空主键描述VideoIDint8否是视频编号VideoNamevarchar20是否视频名称CategoryIDint8是否视频类别号VideoContentvarchar20是否视频内容VideoHitint8是否点击次数VideoPathvarchar20是否视频路径VideoTimeint8是否时长teachervarchar20是否主讲教师(2) Users是用户表,UserID是主键,用来存放用户信息。表2.2用户表字段名称字段类型字段长度允许空主键描述UserIDint8否是用户编号UserNamevarchar20是否用户姓名Passwordint8是否密码Majorvarchar20是否专业Ageint8是否年龄Sexvarchar20是否性别(3) RecVideo是推荐视频表,用来存放将要推荐的视频,VideoID和UserID是主键。表2.3推荐视频表字段名称字段类型字段长度允许空主键描述VideoIDint8否是视频编号UserIDint8否是用户编号(4) Comments是评论表,主键为VideoID和UserID,用来存放用户对视频的评论内容。表2.4评论表字段名称字段类型字段长度允许空主键描述VideoIDint8否是视频编号UserIDint8是否用户编号CommentContentvarchar20是否评论内容Datevarchar20是否评论时间(5) Scores是评分表,主键为VideoID和UserID,用来存放用户对视频的评分。表2.5评分表字段名称字段类型字段长度允许空主键描述VideoIDint8否是视频编号UserIDint8是否用户编号Scorevarchar20是否分数Datevarchar20是否评分时间2.6本章小结 本章首先进行了系统的需求分析,根据系统需求分析进行了系统概要设计,对于于概要设计中首先是系统架构设计,然后具体论述了系统主要功能模块的设计以及系统数据库的设计,为后续章节作指导。3 相关理论研究和技术实现3.1个性化推荐的实现研究随着互联网的快速发展,特别是移动互联技术日益更新,人们可以在网上轻松获取各种教学视频资源来实现自主性学习,对于人们在茫茫信息海洋中常出现的检索时的尴尬,应用个性化推荐算法可以提供解决方案。关于个性化推送系统的研究已有20多年的历史,个性化推荐算法通过较充分的发展,目前主要包括基于内容的个性化推荐、基于关联规则的个性化推荐以及基于协同过滤的个性化推荐,下面就这几种常见的个性化推荐做对比研究。3.1.1个性化推荐的对比研究基于内容的推荐基于内容的个性化推荐算法就是,将项目内容进行描述,使用概率统计和机器学习等技术过滤,将与某用户点击过的项目内容描述相似度高的项目对该用户进行个性化推荐,即根据用户历史浏览记录对用户可能感兴趣的内容进行推测,并通过一系列相似算法和分类技术来确定用户可能感兴趣的内容,从而对用户进行相关内容的推送。基于内容的个性化推荐原理如图3.1所示。图3.1 基于内容的个性化推荐原理 该推送技术的缺点是不适合多媒体文件,因为对项目内容的描述一般来说对于文本文件是比较容易的,但是对于视频、音频等文件来说,内容描述更为困难,生成内容关联向量的偏差会更大。同时该技术只能推送已存在的相似的内容,而无法发现新的内容。基于关联规则的推荐 基于关联规则的推荐技术是指,项目与项目之间存在某些联系,当用户选择某一项目时,基于关联规则的推荐技术可以向用户推荐与之相关的另一个项目,这种关联规则基于两种项目之间的某种相似特点或某种联系属性。 例如某用户正在系统上学习模拟电子技术基础,系统根据关联规则向其推荐数字电子技术基础。这一推荐结果是由于这两门课存在关联性,这一关联规则是由管理员在上传这两门课内容时手动录入的。也就是说基于关联规则的匹配推荐算法是由管理员手动定制一系列关联规则,用户点击了某一项目之后,与此项目有关联规则的其他项目就会被推荐给该用户。基于协同过滤的推荐算法协同过滤算法是目前应用最广泛、发展最成熟的个性化推荐算法。总结其基本过程分为三步:分析用户特性计算用户间相似度,找出“邻居”预测评分,排序推荐具体过程描述如下:首先分析用户的静态属性及动态属性,找出用户专业、职业、兴趣等信息进行建模;然后利用相似性算法算出用户间的相似度,计算公式如式3.1所示: (3.1)其中代表的是用户A与用户B之间的相似度,表示用户对项目n的评分,表示用户对N个已评项目的平均评分。找出与该用户相似性最高的k个用户,即为该用户的“邻居”;找出邻居后参照邻居对资源项目的评分,预测该用户可能对该项目的评分,预测评分计算公式如式3.2所示: (3.2)其中表示用户U对项目j的预测评分,表示用户U对所有已评项目的平均评分,表示用户U和用户I的相似度,表示用户I对项目j的评分,表示用户I对所有已评项目的平均评分。将预测评分依次排序,选择预评分高的项目对该用户进行个性化推荐。目前个性化推荐在电子商务中应用最为广泛,个性化推荐算法已经不止局限于以上三种方式,而是产生了很多以上述三种方式为基础的综合推荐算法。基于内容的个性化推荐和协同过滤推荐算法的优缺点比较如表3.1所示:表3.1基于内容个性化推荐和协同过滤优缺点比较推荐方法基于内容协同过滤优点可以对任意项目进行推荐可以进行联想性推荐;推荐精度高;关联好友,共享经验缺点不能实现联想性推荐无法对新项目进行推荐3.1.2个性化推荐的具体实现社会标签在移动互联网中,系统架构设计关注用户的社会化参与,随着时间推移和用户参与度的提高,用户生成的内容越来越多,形成庞大的网络资源。面对庞大的信息资源,用户可以对其标注一定语义的个性化关键词,以便用户管理和使用网络信息资源,这类个性化关键词就是社会化标签。根据标签信息,用户很容易茫茫信息海洋中找到符合兴趣标签的资源。用户对网络资源打标签既能反应用户的兴趣,又能描述网络资源的基本信息,是用户与网络资源之间一种有效的连接。本系统采用基于标签的个性化推送算法,标签对应于用户兴趣模型里的关键词,系统根据兴趣关键词与视频库的资源进行算法匹配,找到符合用户的视频资源并且以推荐列表的形式推送给用户。(2)关键代码:public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);/ 设置全屏getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);for (int i = 0; i 5; i+)mfavoratei = ;/ 这一串指令用来读取用户的用户名、密码以及喜好 String array;UserInformationService service = new UserInformationService(this);array =service.loadInformationFromDevice(currentuser.txt);mname = array1;Log.i(mname, mname);mpwd = array2;Log.i(mpwd, mpwd);/ 存储favoratefor (int i = 0; i 5; i+)mfavoratei = .;for (int i = 3; i array.length; i+) mfavoratei - 3 = arrayi;Log.i(playlist_favor, mfavoratei - 3);for (int k = 0; k mfavorate.length; k+)favorate = favorate + mfavoratek;mInflater = getLayoutInflater();mSouSoundService = new SoundService(this);initialize();if (isSDcardEjected() mLoadingThread = createLoadingThread();mLoadingThread.start(); 3.2前端设计实现 随着互联网产品飞速发展,手机软件的“界面设计”渐渐成为软件开发中一项重要工程。界面设计讲究美观简洁的屏幕浏览效果,控件位置的摆放要醒目且符合人们的使用习惯,这样用户在可以随心所欲实现无障碍操作。同时界面的布局要合理,符合美观实用的标准,包括布局的整体规划、控件的大小、图标的选取等,界面设计要给用户带来良好的视觉体验和便利的操作体验。3.2.1登录注册界面实现登陆首页界面和注册界面的整体布局采用相对布局,即RelativeLayout,在创建RelativeLayout组件之后添加相应的按钮和文本框。在此模块的界面的编写中,根据界面设计的原则和方法分两部分进行设计:组件边界的设定:为了使界面美观,简洁,灵活,对四个按钮的layout_width和layout_height分别进行设定,不断的尝试找到最合适的值。按钮属性的设定:对按钮的对齐方式、按钮大小、字体大小、字体颜色、背景等进行设置。 图3.2 登陆注册界面3.2.2主界面实现根据系统的功能需求,主界面需要设置六个功能按钮,分别为“推荐列表”、“所有视频”、“设置”、“我的信息”、“修改信息”和“退出”按钮。推荐列表中呈现出与用户兴趣相匹配的视频资源,所有视频可使用户浏览众多信息进行比较,修改信息可以实现个人信息的修改。该界面的实现采用线性布局LinearLayout结构。根据系统要实现的功能,对该界面设置六个功能按钮Button来实现主菜单相关操作,作为跳转各功能模块的事件源。图3.3 主界面3.2.3视频播放界面实现根据系统的功能需求,视频播放的设计需要有播放、上一个、下一个、列表、退出、音量设置和返回主页等功能。因此在视频播放模块设计以上7个按钮,可以完全实现视频播放的基本功能。视频播放区域设置合理,播放进度条以观看视频已播放时长,同时可以拖动进度条实现视频快进或快退。调音可以实现音量的调节,列表用于用户方便浏览和切换视频资源。图3.4视频播放界面3.2.4用户推荐界面实现根据系统的功能需求,个性化推荐的功能将体现在用户的视频推荐列表中,采用相关算法匹配后,根据用户的兴趣爱好、相关程度等信息,用户视频推荐列表中将呈现出与用户兴趣相关的视频信息。用户在主界面中点击推荐列表按钮,界面将跳转到推荐列表界面,该列表中根据相关度罗列出有用的视频信息供用户筛选。图3.5 推荐界面该界面采用相对布局RelativeLayout,创建完RelativeLayout组件后,根据系统功能,创建TextView和ListView,用于显示视频列表信息。同时添加监听,点击每个视频项时能跳转到相应的播放界面。3.3后台事件处理3.3.1登录注册模块在本模块中,用户点击“登陆”按钮,将跳转到主界面;点击“注册”按钮,将跳转到注册界面,在注册界面中,点击“注册”按钮将填写的信息写入数据库并同时返回到主界面。该模块设置login按钮和sign按钮,文本框有用户名和密码输入部分,分别设为mName、mPwd变量,LoginActivity用来实现用户登录,用login.setOnClickListener实现登录的事件监听,用sign.setOnClickListener实现注册的事件监听。核心代码如下:public void onClick(View arg0) Intent intent;int tag = new int100;for (int i = 0; i 100; i+)tagi = -1;int j = 0, i = 0, flag = 0;switch (arg0.getId() case R.id.login_button:String array;UserInformationService userservice = new UserInformationService(this);array =userservice.loadInformationFromDevice(information.txt);SavePwdService service = new SavePwdService(this);String name = mName.getText().toString().trim();String pwd = mPwd.getText().toString().trim();if (mCb.isChecked() / 保存用户名密码到持久化设备,目录: data/data/com.yangguangfu.videoplayer/files/config.txtservice.saveToDevice(name, pwd, config.txt);for (i = 0; tagi != -1 ; i+)if (arraytagi + 1.equals(name)& arraytagi + 2.equals(pwd) flag = 1;tag99=i;Log.i(place, +tag99);if (flag = 1)/ 验证用户名密码String infor = ;for (i = tagtag99 + 1; i array.length; i+) if (arrayi.equals(;)break;else Log.i(array, arrayi);infor = infor + ,+arrayi;service.saveToDevice(infor, , currentuser.txt);Toast.makeText(getBaseContext(), 登陆成功!, Toast.LENGTH_SHORT).show();finish();intent = new Intent(this, MainMenuActivity.class);startActivity(intent); elseToast.makeText(getBaseContext(), 用户名或密码错误!,Toast.LENGTH_SHORT).show();break;case R.id.new_sign:Toast.makeText(getBaseContext(), 新用户注册., Toast.LENGTH_SHORT).show();/ 转至注册组件intent = new Intent(this, SignActivity.class);startActivity(intent);break;3.3.2主界面模块在本模块中,主界面中的六个按钮分别跳转到推荐列表、所有视频列表、设置、我的信息、修改信息界面,按退出按钮后将退出该播放界面。因此,在编写过程中,需要为每一个按钮设置事件监听器,当点击它时,实现界面跳转。首先,利用findViewById方法通过id获取主界面文件里面定义的按钮,再利用setOnClickListener方法为按钮注册事件监听器,实现OnClickListener实现类,并且必须重写该类的所有方法。在重写onClick方法中,当一个Activity需要启动另外一个Activity时,程序需要使用Intent告诉系统需要启动哪Activity。 核心代码如下:public class MainMenuActivity extends BaseActivity implementsView.OnClickListener private static final String tag = MainMenuActivity;private PrefService mPrefService;private SoundService mSoundService; / menu菜单Dialogprivate AlertDialog menuDialog;private View mMenuView;TextView myname, mypwd, myf1, myf2, myf3, myf4;String mname;String mpwd;String mfavorate = new String5;Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);for (int i = 0; i 5; i+)mfavoratei = ;/ 这一串指令用来读取用户的用户名、密码以及喜好String array;UserInformationService service = new UserInformationService(this);array = service.loadInformationFromDevice(currentuser.txt);mname = array1;Log.i(mname, mname);mpwd = array2;Log.i(mpwd, mpwd);/ 存储favoratefor (int i = 3; i array.length; i+) mfavoratei - 3 = arrayi;Log.i(mfavorate, mfavoratei - 3);3.3.3视频播放模块 该模块实现的功能主要点击播放视频资源,视频播放时可以对视频的播放进行控制。这里设置“主页”按钮实现返回菜单操作,“上一个”、“下一个”按钮分别实现切换到上一个或者下一个视频操作,“播放”按钮实现视频播放操作, “列表”按钮实现查看播放列表操作,“退出”按钮直接退出播放模块,“调音”按钮用来控制音量大小。该模块的实现,首先写VideoPlayerActivity方法创建视频播放功能的activity,定义ArrayList播放列表位置。Position为播放时长,VideoView为播放进度条,SeekBar显示视频总时长,GestureDetector实现声音管理。该模块设置mGoToPlayList(播放列表),mPrevious(上一个),mNext(下一个),mGoToMainMenu(回主菜单),mSoundControl(声音控制),mControlerExit(退出)等按钮,利用setOnClickListener方法为按钮注册事件监听器,再通过intent方法实现一个activity到另一个activity的跳转。核心代码如下:/ 加载控制视频界面mControlView = getLayoutInflater().inflate(R.layout.controler_view,null);mControlerPopupWindow = new PopupWindow(mControlView);/ 显示视频总长度时间durationTextView = (TextView) mControlView.findViewById(R.id.duration);/ 显示视频播放了多少时间playedTextView = (TextView) mControlView.findViewById(R.id.has_played);mGoToMainMenu = (Button) mControlView.findViewById(R.id.control_goto_menu);/ 上一视频mPrevious = (Button) mControlView.findViewById(R.id.control_previous);/ 播放视频mPlay = (Button) mControlView.findViewById(R.id.control_play_state);/ 下一视频mNext = (Button) mControlView.findViewById(R.id.control_next);/ 控制声音mSoundControl = (Button) mControlView.findViewById(R.id.control_sound_control);mControlerExit = (Button) mControlView.findViewById(R.id.controler_exit);/ 播放列表mGoToPlayList = (Button) mControlView.findViewById(R.id.control_goto_play_lists); / 视频显示 mVideoView = (VideoView) findViewById(R
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 鹿邑烧烤活动方案
- 集体活动喂香蕉活动方案
- 航空物流考试题及答案
- 韩国国旗考试题及答案
- 骨科高级考试题及答案
- 幼儿园教学教案设计:报纸时装周环保材料立体裁剪
- 产品质量跟进保障承诺书9篇范文
- 企业品牌推广及形象宣传材料制作标准模板
- 服装手绘考试题及答案
- 法语口语表达与交际技巧教学教案
- 2026年中考语文专项复习:新闻考点+答题方法知识点 讲义(含练习题及答案)
- 病房环境清洁与消毒PDCA课件
- 【《A公司电线电缆产品营销策略浅析》5800字(论文)】
- 公司注册登记培训课件
- 2025 年小升初上海市初一新生分班考试语文试卷(带答案解析)-(人教版)
- 2025康复医学考试题库(含参考答案)
- 26个字母卡片大小写A4打印-版
- 博物馆反恐安全知识培训课件
- 儿科高危药品与急救药品管理指南
- 《电机与拖动基础》课件(共十一章)
- 2024版中国难治性全身型重症肌无力诊断和治疗专家共识解读课件
评论
0/150
提交评论