ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:397.78KB ,
资源ID:25703435      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25703435.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(mp3实验.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

mp3实验.docx

1、mp3实验Mp3实验报告一、实验目的1、掌握本地服务的管理方法;2、掌握服务的隐式启动和显式启动方法;3、掌握远程服务的绑定和调用方法;4、了解AIDL语言的用途和语法。二、实验内容开发简易音乐播放程序,实现音乐播放、暂停、切换等基本功能。要求分别以启动方式和绑定方式管理后台服务。三、安卓应用程序开发环境安装配置了安卓组件的windows操作系统JDK Eclipse Andriod Andriod SDK ADT Apach Tomcat四、需求分析读取远程服务器当中的XML文件五、实验过程及调试1、将项目直接运行在手机上Target 选择 Always prompt to pick dev

2、ices,表示运行项目时会弹出真机提示框“Android device choonser”2、运行项目 弹出设备选择窗口: 这里选择真机“huawei-y511_u00” 点击“OK” 开始启动运行3、很抱歉,程序已停止运行。错误提示INSTALL_FAILED_SHARED_USER_INCOMPATIBLE:可能原因:apk的AndroidManifest.xml中声明了android:sharedUserId=android.uid.system,但没有相应的签名。Installationerror:INSTALL_FAILED_SHARED_USER_INCOMPATIBLEPleas

3、echecklogcatoutputformoredetails.Launchcanceled!解决办法:1、找到编译目标系统时的签名证书platform.pk8和platform.x509.pem,在android源码目录buildtargetproductsecurity下;2、将android:sharedUserId=android.uid.system先注释起来。4、应用程序未运行,提示:Failed to install FloatActivity.apk on device 20120208: timeoutLaunch canceled!解决办法:模拟器(或真机)超时,重启模拟

4、器,如果是真机则先断开数据线再重新连接。5、应用程序运行错误,提示:可能原因:AndroidManifest.xml配置文件配置信息错误。6、如何读取Android模拟器中的文件?选中文件,点击下图中第一个图标,将Android模拟器中的文件复制到其它地方就可以打开了,注意:Android模拟器中的sdcard在mnt目录下:7、很抱歉,程序已停止运行。错误提示:Caused by: 可能原因:尝试在一个Service中放置一个对话框。解决办法:将此对话框设置为系统级提示框(即全局性质的提示框):mDialog.getWindow().setType(WindowManager.LayoutP

5、arams.TYPE_SYSTEM_ALERT);相应的需要在Android配置文件中添加权限声明:8、无法运行程序,提示.ConnectException: Connection refused: connect.可能原因:模拟器端的ADB出问题了。解决办法:打开CMD,输入adb kill-server,再输入adb devices如下,提示ADB server didnt ACK:9、在AndroidManifest.xml中添加某些权限时错误,提示Permission is only granted to system app.解决办法:点击WindowPreferencesAndro

6、idLint Error Checking. 更改ID = ProtectedPermission项的Security。六、实验小结根据理论知识对所得到的实验数据或结果进行解释、分析。对实验结果所作的一般性的判断、归纳、概括,实验的心得体会、建议等。后台服务是通过启动方式或者绑定方式开启的。在启动方式中,启动Service的组件不能够获取Service的对象实例而在绑定方式中,可以调用Service中实现的函数。七、实验代码FileUtils.javapackage mars.download;import java.io.File;import java.io.FileOutputStrea

7、m;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.ArrayList;import java.util.List;import mars.model.Mp3Info;import android.os.Environment;public class FileUtils private String SDCardRoot; public FileUtils() /得到当前外部储存设备的目录,File.separator是文件分隔符,比如在win

8、dow下是 SDCardRoot = Environment.getExternalStorageDirectory().getAbsolutePath()+File.separator; /* * 在SD卡上创建文件 * param fileName * return * throws IOException */ public File createSDFile(String fileName,String dir) throws IOException File file = new File(SDCardRoot + dir + File.separator + fileName);

9、System.out.println(file-+file); file.createNewFile(); return file; /* * 在SD卡上创建目录 */ public File createSDDir(String dir) File dirFile = new File(SDCardRoot + dir + File.separator); System.out.println(create dir + dirFile.mkdir(); return dirFile; /* * 判断SD卡上的文件夹是否存在 */ public boolean isFileExist(Stri

10、ng fileName,String path) File file = new File(SDCardRoot + path +File.separator + fileName); return file.exists(); /* * 将一个InputSream里面的数据写入到SD卡上 */ public File write2SDFromInput(String path,String fileName,InputStream input) File file = null; OutputStream output = null; try createSDDir(path); file

11、= createSDFile(fileName , path ); output = new FileOutputStream(file); byte buffer = new byte4 * 1024; int temp; while(temp = (input.read(buffer) != -1) output.write(buffer ,0 ,temp); output.flush(); catch(Exception e) e.printStackTrace(); finally try output.close(); catch(Exception e) e.printStackT

12、race(); return file; /* * 读取目录中mp3文件的名字和大小+lrc文件 */ public List getMp3Files(String path) List mp3Infos = new ArrayList(); File file = new File(SDCardRoot + path+ File.separator ); File files = file.listFiles(); for(int i = 0; i files.length; i+) if(filesi.getName().endsWith(mp3) Mp3Info mp3Info = ne

13、w Mp3Info(); mp3Info.setMp3Name(filesi.getName(); mp3Info.setMp3Size(filesi.length() + ); String lrcname=filesi.getName().split(.); String lrc=lrcname0+.lrc; if(isFileExist(lrc, /mp3) mp3Info.setLrcName(lrc); mp3Infos.add(mp3Info); return mp3Infos; HttpDownloader.javapackage mars.download;import jav

14、a.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import .HttpURLConnection;import .MalformedURLException;import .URL;public class HttpDownloader private URL url = null; /* * 根据URL下载文件,前提是这个文件是文本的,函数的返回值就是文件当中的内容 * 1.创建一个UR

15、L对象 * 2.通过URL对象,创建一个HttpURLConnection对象 * 3.得到InputStream * 4.从InputStream得到数据 */ public String download(String urlStr) StringBuffer sb = new StringBuffer(); String line = null; BufferedReader buffer = null; try /创建一个url连接 url = new URL(urlStr); /创建一个http连接 HttpURLConnection urlConn = (HttpURLConnec

16、tion)url.openConnection(); /使用IO读取数据 buffer = new BufferedReader(new InputStreamReader(urlConn.getInputStream(); while(line = buffer.readLine() != null) sb.append(line); catch(Exception e) e.printStackTrace(); finally try buffer.close(); catch (Exception e) e.printStackTrace(); return sb.toString();

17、 /* * 该函数返回整形,-1代表下载文件出错,0代表下载文件成功,1代表文件已经存在 */ public int downFile(String urlStr, String path,String fileName) InputStream inputStream = null; try FileUtils fu = new FileUtils(); if(fu.isFileExist(fileName,path) return 1; else inputStream = getInputStreamFromUrl(urlStr); System.out.println(test); F

18、ile resultFile = fu.write2SDFromInput(path, fileName, inputStream); if(resultFile = null) return -1; catch(Exception e) e.printStackTrace(); return 0; /* * 根据URL得到输入流 */ public InputStream getInputStreamFromUrl(String urlStr) throws MalformedURLException, IOException url = new URL(urlStr); HttpURLCo

19、nnection urlConn = (HttpURLConnection)url.openConnection(); InputStream inputStream = urlConn.getInputStream(); return inputStream; LrcProcesor.javapackage mars.lrc;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.L

20、inkedList;import java.util.Queue;import java.util.regex.Matcher;import java.util.regex.Pattern;public class LrcProcesor SuppressWarnings(rawtypes) public ArrayList process(InputStream inputStream) /存放时间点数据 Queue timeMills = new LinkedList(); /存放时间点对应的歌词 Queue messages = new LinkedList(); /将放时间和歌词存放到

21、一起 ArrayList queues = new ArrayList(); try /创建BufferedReader对象 InputStreamReader inputReader = new InputStreamReader(inputStream,GBK); BufferedReader bufferedReader = new BufferedReader(inputReader); String temp = null; SuppressWarnings(unused) int i = 0; /创建一个正则表达式 Pattern p = Ppile(+); String resu

22、lt = null; boolean b= true; while(temp = bufferedReader.readLine() != null) i +; Matcher m = p.matcher(temp); if(m.find() if(result != null) messages.add(result); String timeStr = m.group(); Long timeMill = time2Long(timeStr.substring(1, timeStr.length() - 1); if(b) timeMills.offer(timeMill); String

23、 msg = temp.substring(10); result = + msg + n; else result = result + temp + n; messages.add(result); queues.add(timeMills); queues.add(messages); catch(Exception e) e.printStackTrace(); return queues; /* * 将分钟,秒全部转化为毫秒 * param timeStr * return */ public Long time2Long(String timeStr) String s = tim

24、eStr.split(:); int min = Integer.parseInt(s0); String ss = s1.split(.); int sec = Integer.parseInt(ss0); int mill = Integer.parseInt(ss1); return min * 60 * 1000 + sec * 1000 + mill * 10L; Mp3Info.javapackage mars.model;import java.io.Serializable;public class Mp3Info implements Serializable /* * */

25、 private static final long serialVersionUID = 1L; private String id; private String mp3Name; private String mp3Size; private String lrcName; private String lrcSize; public String getId() return id; public void setId(String id) this.id = id; public String getMp3Name() return mp3Name; public void setM

26、p3Name(String mp3Name) this.mp3Name = mp3Name; public Mp3Info() super(); public String getMp3Size() return mp3Size; public void setMp3Size(String mp3Size) this.mp3Size = mp3Size; public String getLrcName() return lrcName; public void setLrcName(String lrcName) this.lrcName = lrcName; public String g

27、etLrcSize() return lrcSize; public void setLrcSize(String lrcSize) this.lrcSize = lrcSize; Override public String toString() return Mp3Info id= + id + , mp3Name= + mp3Name + , mp3Size= + mp3Size + , lrcName= + lrcName + , lrcSize= + lrcSize + , toString()= + super.toString() + ; public Mp3Info(String id, String mp3Name, String mp3Size, String lrcName, String lrcSize) super(); this.id = id; this.mp3Name = mp3Name; this.mp3Size = mp3Size; this.lrcName = lrcName; this.lrcSize = lrcSize; AppConstant.javapackage mars.mp3player;public interface

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1