Android音乐播放器的设计与实现毕业论文.doc
《Android音乐播放器的设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《Android音乐播放器的设计与实现毕业论文.doc(45页珍藏版)》请在咨信网上搜索。
. 目录 一、前言1 二、系统分析2 (一)系统需求分析2 (二)系统功能需求分析2 (三)业务流程分析5 三、系统设计5 (一)总体设计5 (二)歌曲列表模块设计6 (三)播放控制模块设计6 (四)播放器设置模块设计7 (五)数据库设计8 四、系统实现11 (一)主界面11 (二)播放列表19 (三)歌词显示界面20 (四)皮肤更换24 五、软件测试25 (一)软件的测试25 (二)功能的测试与实现25 (三)测试结论26 六、结论26 参考文献28 43 / 45 Android音乐播放器的设计与实现 (电子信息工程系 软件技术111班 王永军) 摘 要:本论文的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse开发工具对播放器代码进行编写。同时给出了详细的系统设计过程、部分界面截图与主要的功能流程图,该音乐播放器集播放、暂停、停止、上一首、下一首、歌词显示等功能于一体,性能良好,在Android系统中能独立运行。实验证明,基于android平台的软件开发简单,使用方便简洁,必将成为未来几年的发展方向,具有普遍意义。 关键词:Android;Java;Eclipse;音乐播放器 一、前 言 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,是的手机操作系统也出现了不同各类,现在的市场主要有三个手机操作系统,Windows mobile,苹果系统,以与谷歌的Android操作系统,其中占有开发源代码优势的Android系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的播放器。 随着计算机的广泛运用,手机市场的迅速发展,各种音频资源也在网上广为流传,这些资源卡是平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味最求外观花俏,功能庞大,对用户的手机造成很多资源浪费,比如CPU,存等的占用率过高,在用户需要多任务操作时,受到不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户听歌的需求。 现今社会生活紧,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计的实现的这主要功能是播放MP3等音乐文件,并且能够控制播放器播放,暂停,停止,上一曲,下一曲。界面简单,操作简单。 本项目是一款基于Android手机 平台的音乐播放器,使Android手机拥有个性的播放器,让手机主人随时随地处于音乐的旋律中。使人们的生活更加多样化。也使设计者更加熟练Android的技术和其它在市场上的特点。 二、系统分析 (一)系统需求分析 1. 需求分析 本系统属于用户常用的音乐播放器。可以方便用户平时对音乐文件的操作。本系统应达到以下目标: (1) 软件采用人机交互的方式,界面美观友好,操作灵活、方便、富有个性化。 (2) 能够对音乐文件进行有效的管理。 (3) 系统应最大限度地实现易维护性和易操作性。 2. 软件的可行性研究 (1)经济上的可行性 Android 是 Google 历经数年和投资数亿美元开发出来的智能手机系统,是 基于 Linux 核的操作系统,是 Google 公司在 2007 年 11 月 5 日公布的手机操 作系统。随着各大移动终端生产商大力开发和生产基于 Android 的移动智能设备, Android迅速得到业界和社会的认可,并成为整个产业的热点,基于 Android 平 台的各类人才逐渐成为各大企业竞相争夺的焦点。 而且 Android 是一个开放的系统,不管是企业还是个人都可以参与来表达自己的创意和想法。 (2)技术上的可行性 Google发起了围绕Android的组织——开放手机联盟, 其英文全称为 “Open Handset Alliance”。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层 Linux 核只提供基本功能;其他的应用软件则 由各公司自行开发,部分程序以 Java 编写。 (3)操作上的可行性 本系统采用Android框架,可以在eclipse中安装Android开发插件,使用Android模拟器也可以使用任意Android终端。模拟器和真正的Android手机没有太大区别,人们对手机操作早已熟悉。 (二)系统功能需求分析 1. 用例图与用例描述 功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了用户的业务需求。用户需求文档描述了用户使用产品必须要完成的任务。针对音乐播放器分别对音乐播放功能进行详细的调研和分析,总结出如用户需求信息,其用例图如图2.1所示。 图2.1 播放器用例图 音乐播放器的用例描述如下: (1) 用例名称:播放 参与者:用户 目标:使得用户可以播放在播放列表中选中的歌曲 前置条件:播放器正在运行 基本事件流:1.用户单击“播放”按钮 2.播放器将播放列表中的当前的歌曲 (2) 用例名称:暂停 参与者:用户 目标:使得用户可以暂停正在播放的歌曲 前置条件:歌曲正在播放且未停止和暂停 基本事件流:1.用户单击“暂停”按钮 2.播放器将暂停当前的歌曲 (3) 用例名称:上一首/下一首 参与者:用户 目标:使得用户可以听上一首或下一首歌曲 前置条件:歌曲正在播放或暂停 基本事件流:1.用户单击“上一首或下一首”按钮 2.播放器将播放上一首或下一首歌曲 (4) 用例名称:播放列表 参与者:用户 目标:使得用户可以进入播放清单 前置条件:程序在运行 基本事件流:播放器进入播放列表 (5) 用例名称:歌词显示 参与者:用户 目标:使得程序进入播放器歌词设置状态 前置条件:程序运行在播设定界面 基本事件流:播放器显示或关闭歌词 2. 音乐播放器的时序图 播放器对象之间的交互情况如图2.2所示。 图2.2 音乐播放器的时序图 (三)业务流程分析 播放器工作流程图如图2.3所示。 图 2.3 音乐播放器流程图 三、系统设计 (一) 总体设计 根据播放器的实现目标,可获得播放器的基本需求,以下从不同角度来描述系统的需求,系统的功能需求,分成三部分来概括,即播放器的基本控制需求,播放列表管理需求和播放器友好性需求,如图3.1所示为应用功能结构图分析: 图3.1 功能结构图 (二) 歌曲列表模块设计 程序在初始化界面时,从系统数据库获得SD所有音乐信息,将这些得到的信息构建到列表呈现给用户,流程如图3.2所示: 图3.2 歌曲列表模块流程图 (三) 播放控制模块设计 播放控制模块是整个设计控制的核心部分,用户只需通过简单的触摸操作就可以实现对歌曲播放的控制,如图3.3所示: 图3.3播放控制模块流程图 (四) 播放器设置模块设计 播放器设置包括播放器背景皮肤更换以与播放器定时睡眠,如图3.4所示: 图3.4 播放器设置模块流程图 (五) 数据库设计 1. 数据库与字段属性设计 (1) 字段设计(表、图) file_table 主要是保存歌曲名字、类型、路径。 字段说明:Id 歌曲id号 fileName 歌曲名字 filePath 歌曲路径 sort 歌曲类型(表3.1、图3.5) Android自带一个MediaStore封闭类专门来存储媒体信息,通过Uri EXTERNAL_CONTENT_URI 来访问SDcard中的歌曲详细信息。存放媒体信息如TITLE(标题)、ARTIST(艺术家)、ALBUM(专辑)、SIZE(大小 )(表3.2、图3.5) 图3.5 歌曲列表 图3.6 歌曲详细 (2) 音乐播放器E-R图 音乐播放器 E-R图(图3.6) 图3.7 E-R图 2. 数据库连接 (1) 创建数据库 Android 提供了标准的数据库创建方式。继承SQLiteOpenHelper ,实现onCreate 和 onUpgrade 两个方法,有个好处就是便于数据库版本的升级,连接数据库的算法如下: /**游标***/ private Cursor c = null; /**建立表的语句**/ privatestaticfinal String CREATE_TAB = "create table "+ "music(_id integer primary key autoincrement,music_id integer,clicks integer," +"latest text)"; /**列名***/ privatestaticfinal String TAB_NAME = "music"; /**数据库***/ private SQLiteDatabase db = null; /***构造函数**/ public DBHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } /***构造一个数据库,如果没有就创建一个数据库***/ Override publicvoid onCreate(SQLiteDatabase db) { this.db = db; db.execSQL(CREATE_TAB);} (2) 操作数据库 Android对数据库的操作主要有插入、删除、更新、查询操作,在进行任何操作时都必须指定一个Uri,才能对相应的表进行数据操作。 /**插入数据**/ publicvoid insert(ContentValues values){ SQLiteDatabase db = getWritableDatabase(); db.insert(TAB_NAME, null, values); db.close(); } /*** 更新数据*/ publicvoid update(ContentValues values,int id){ SQLiteDatabase db = getWritableDatabase(); db.update(TAB_NAME, values, "music_id="+id, null); db.close(); } /**删除数据*/ publicvoid delete(int id){ if (db == null){ db = getWritableDatabase(); } db.delete(TAB_NAME, "music_id=?", new String[]{String.valueOf(id)});} (3) 数据显示 程序是利用Cursor游标类指向数据表中的某一项,然后进行查询数据,用Log日志显示出来 /***查找数据*/ public Cursor query(int id){ SQLiteDatabase db = getReadableDatabase(); c = db.query(TAB_NAME, null, "music_id=?", new String[]{String.valueOf(id)}, null, null, null); db.close(); returnc; } 四、系统实现 (一) 主界面 Android的每一个可视化界面,都有其的唯一的布局配置文件,该文件里面有各种布局方式,和各种资源文件如图像,文字,颜色的引用,程序在运行时,可以通过代码对各配置文件进行读取。这样就可以形成不同的可视化界面和炫丽的效果。播放器主界面是一个Activity,Android工程在每个activity启动的时候会首先执行Oncreate()方法,如下代码: Public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);} 该方法主要执行界面的初始化操作,Activity有个设置布局的方法:Context.setContentView(layoutResID),参数为资源ID,该Id在工程目录res/layout下,主界面布局文件名为main。 欢迎界面结束以后进入主界面图4.1所示, 主界面主要采用相对布局(RelativeLayout)。 图4.1 主界面 部分布局代码如下: <RelativeLayout android:id="+id/rl_player_topbar" android:layout_width="fill_parent" android:layout_height="50dp" android:layout_alignParentTop="true" android:background="drawable/bg_media_library_topbar"> <ImageButton android:id="+id/ibtn_player_list" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_margin="5dp" android:background="drawable/player_btn_list"/> <TextView android:id="+id/tv_player_song_info" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_toLeftOf="+id/ibtn_player_voice" android:layout_toRightOf="id/ibtn_player_list" android:ellipsize="marquee" android:focusable="true" android:focusableInTouchMode="true" android:gravity="center_horizontal" android:lines="1" android:marqueeRepeatLimit="marquee_forever" android:singleLine="true" android:text="显示歌名" android:textColor="android:color/white" android:textSize="19sp" android:textStyle="bold"/> <TextView android:id="+id/tv_player_singer_info" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="id/tv_player_song_info" android:layout_centerHorizontal="true" android:layout_toLeftOf="+id/ibtn_player_voice" android:layout_toRightOf="id/ibtn_player_list" android:ellipsize="marquee" android:focusable="true" android:focusableInTouchMode="true" android:marqueeRepeatLimit="marquee_forever" android:paddingLeft="71dip" android:singleLine="true" android:text="显示歌手" android:textColor="android:color/white" android:textSize="15sp"/> <ImageButton android:id="+id/ibtn_player_voice" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:background="drawable/player_btn_voice"/> </RelativeLayout> 1.播放音轨SeekBar 在main.xml文件中,SeekBar的代码如下: <SeekBar android:id="+id/sb_player_voice" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_toLeftOf="id/iv_player_max_voice" android:layout_toRightOf="id/iv_player_min_voice" android:background="drawable/voice_seekbar_bg" android:paddingLeft="5dp" android:paddingRight="5dp" android:progressDrawable="drawable/voice_seekbar_progress" android:thumb="drawable/voice_seekbar_thumb"/> 上面代码中有参数android:thumb="drawable/ voice_seekbar_thumb"为音轨游标的图片资源android:progressDrawable="drawable/ voice_seekbar_progress "为SeekBar条的风格style。引用了drawable中的voice_seekbar_progress.xml文件, voice_seekbar_progress.xml是自定义的配置文件,代码如下: <?xmlversion="1.0"encoding="utf-8"?> <layer-listxmlns:android="schemas.android./apk/res/android"> <itemandroid:id="android:id/background" android:drawable="drawable/voice_seekbar_bg"> </item> <itemandroid:id="android:id/progress"> <clipandroid:drawable="drawable/voice_seekbar_one"/> </item> </layer-list> 播放器最重要的一部分就是音轨与歌曲进度同步的实现。音轨设置了两个TextView用来显示当前歌曲播放的进度时间和歌曲的长度(图4.2)。 图4.2 播放音轨 音轨对象SeekBar部分代码如下: privatevoid ShowSeekBar() { seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { Override publicvoid onStopTrackingTouch(SeekBar seekBar) { } Override publicvoid onStartTrackingTouch(SeekBar seekBar) { } Override publicvoid onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (fromUser) { seekbar_change(progress); }elseif (seekBar.getId() == R.id.sb_player_voice) { // 设置音量 am.setStreamVolume(AudioManager.STREAM_MUSIC, progress, 0); } } }); } /** * 进度条改变事件 */ privatevoidseekbar_change(int progress) { Intent intent = new Intent(); intent.setAction(".app.media.MUSIC_SERVICE"); intent.putExtra("op", PROGRESS_CHANGE); intent.putExtra("progress", progress); startService(intent); } 2. 播放调节功能实现 各按钮水平放置,从左到右依次是上一首、播放、下一首功能按钮。用的是布局中的线性布局LinearLayout,;将其设置为水平,如图4.3所示: 图4.3 播放功能按钮 LinearLayout中依次放置播放/暂停,上一首、下一首按钮属性。配置文件代码结构如下: <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_toLeftOf="id/ibtn_player_control_mode"android:layout_toRightOf="id/ibtn_player_control_menu" android:gravity="center" android:orientation="horizontal"> <ImageButton android:id="+id/ibtn_player_control_pre" android:layout_width="75dip" android:layout_height="58dip" android:background="drawable/player_btn_player_pre"/> <ImageButton android:id="+id/ibtn_player_control_play" android:layout_width="75dip" android:layout_height="58dip" android:background="#00000000"/> <ImageButton android:id="+id/ibtn_player_control_next" android:layout_width="75dip" android:layout_height="58dip" android:background="drawable/player_btn_player_next"/> </LinearLayout> 主要按钮功能实现代码: (1) “上一首”按钮并实现功能: privatevoid ShowLastBtn() { last_btn.setOnClickListener(new OnClickListener() { publicvoid onClick(View v) { lastOne(); } }); } /** * 上一首 */ privatevoidlastOne() { if (_ids.length == 1 || loop_flag == LOOP_ONE) { position = position; Intent intent = new Intent(); intent.setAction(".app.media.MUSIC_SERVICE"); intent.putExtra("length", 1); startService(intent); play(); return; } if (random_flag == true) { if (randomNum < _ids.length - 1) { randomIDs[randomNum] = position; position = findRandomSound(_ids.length); randomNum++; } else { randomNum = 0; for (int i = 0; i < _ids.length; i++) { randomIDs[i] = -1; } randomIDs[randomNum] = position; position = findRandomSound(_ids.length); randomNum++; } } else { if (position == 0) { position = _ids.length - 1; } elseif (position > 0) { position--; } } stop(); setup(); play(); } (2) “播放”按钮并实现功能: privatevoid ShowPlayBtn() { play_btn.setOnClickListener(new OnClickListener() { Override publicvoid onClick(View v) { switch (flag) { caseSTATE_PLAY: pause(); break; caseSTATE_PAUSE: play(); break; } } }); } (3) “下一首”并实现功能: privatevoid ShowNextBtn() { next_btn.setOnClickListener(new OnClickListener() { Override publicvoid onClick(View v) { nextOne(); } }); } /** * 下一首 */ publicvoid nextOne() { if (_ids.length == 1 || loop_flag == LOOP_ONE) { position = position; Intent intent = new Intent(); intent.setAction(".app.media.MUSIC_SERVICE"); intent.putExtra("length", 1); startService(intent); play(); return; } if (random_flag == true) { if (randomNum < _ids.length - 1) { randomIDs[randomNum] = position; position = findRandomSound(_ids.length); randomNum++; } else { randomNum = 0; for (int i = 0; i < _ids.length; i++) { randomIDs[i] = -1; } randomIDs[randomNum] = position; position = findRandomSound(_ids.length); randomNum++; } } else { if (position == _ids.length - 1) { position = 0; } elseif (position < _ids.length - 1) { position++; } } stop(); setup(); play(); } (二)播放列表 歌曲列表显示界面 如图4.4: 图4.4 歌曲列表 ListView有一个监听器new onItemClickListener(){public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {}},我们只要实现这个方法,就可以监听鼠标的点击事件,当鼠标点击到每一行时,可以通过ListView.getItemAtPositon(int position)得到该行上的信息。这样就可以通过Intent将数据传入到其它的Activity。代码如下: menulist.setOnItemClickListener(new OnItemClickListener() { Override publicvoid onItemClick(AdapterView<?> parent, View view,int position, long id) { xfdialog.cancel(); xfdialog.dismiss(); if (position==0) { playMusic(num); }elseif (position==1) { SetRing(); }elseif (position==2) { ShowMusicInfo(num); } } }); 歌曲列表界面的添加一个ListView控件: <?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="schemas.android./apk/res/android" android:id="+id/rl_parent_cotent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="drawable/bg_media_library" android:orientation="vertical"> <includelayout="layout/music_list_top"/> <ListView android:id="+id/local_music_list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:background="drawable/bg_media_library" android:cacheColorHint="#00000000" android:divider="#b5b5b5" android:listSelector="#00000000" android:dividerHeight="1dp" android:fadingEdge="none" android:fastScrollEnabled="false"> </ListView> </LinearLayout> (三) 歌词显示界面 当播放音乐文件时,如果同时存在该歌曲的LRC格式的歌词文件时,系统会自动匹配歌词并且达到同步显示的效果,如图4.5所示: 图4.5歌词显示 1. 读取歌词文件的容 privatevoid read(String path) { lrc_map.clear(); TreeMap<Integer, LRCbean> lrc_read = new TreeMap<Integer, LRCbean>(); String data = ""; BufferedReader br = null; File file = new File(path); System.out.println(path); /**如果没有歌词,则用没有歌词显示**/ if (!file.exists()) { Animation lrcanim=AnimationUtils.loadAnimation(context, R.anim.album_replace); lrcTextview.setText(R.string.no_lrc_messenge); lrcTextview.startAnimation(lrcanim); return; } FileInputStream stream = null; try { stream = new FileInputStream(file); br = new BufferedReader(new InputStreamReader(stream, "UTF-8"));//记得歌词一定要设置UTF-8,否则歌词编码直接乱码喔。 } catch (FileNotFoundException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } 2. 解析歌曲时间处理类: while ((d- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 音乐 播放 设计 实现 毕业论文
咨信网温馨提示:
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。
关于本文