Android 多媒体(读取网络中的音乐文件)

本文介绍了如何在Android应用中播放网络上的音乐文件,包括设置Tomcat服务器、放置音频文件、调整代码实现播放功能,以及处理播放控制。通过创建MediaPlayer对象,设置数据源并异步准备播放,实现从指定URL播放音乐。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

既然我们是要播放网络音乐,那就要先检测网络环境搭建好了没有。

步骤是:

1、找到Tomcat的位置中bin目录中的startup.bat,之后在网址上输入地址:localhost:7788,(我的是7788,官方默认是8080,出现网页不对的可以试一下8080)



2、找到Tomcat的位置中的webapps-》ROOT,在ROOT中放入音频
3、打开cmd,打出ipconfig,得到图下的IP地址,然后再把localhost换成你自己的IP地址后面再加上你放的音频的名字,例如我的是http://193.168.5.5:7788/s1.mp3,有些网页是直接出现下载,我的是直接播放,两种结果的都是成功,如果不成功,那就是环境没有搭建好,自己可以再去多多检查一下。



接下来就是代码部分了,xml布局文件和前面一篇的是一模一样的,所以在这里我就不多写了,就直接上Java代码了。

[java]  view plain   copy
  1. package com.zking.laci.android27_playmusic;  
  2.   
  3. import android.media.AudioManager;  
  4. import android.media.MediaPlayer;  
  5. import android.net.Uri;  
  6. import android.os.Environment;  
  7. import android.support.v7.app.AppCompatActivity;  
  8. import android.os.Bundle;  
  9. import android.util.Log;  
  10. import android.view.View;  
  11. import android.widget.ImageButton;  
  12. import android.widget.SeekBar;  
  13.   
  14. import java.io.IOException;  
  15.   
  16. public class MainActivity extends AppCompatActivity {  
### Android 设备读取 USB OTG 中 MP4 文件的方法 为了在 Android 设备上成功读取通过 USB OTG 接入的存储设备中的 MP4 文件,需遵循特定流程并处理可能遇到的问题。下面提供一种基于现有开源项目的解决方案。 #### 准备工作 确保应用程序具有访问外部存储权限。对于 API Level 29 及以上的版本,建议使用分区存储模型下的 `MANAGE_EXTERNAL_STORAGE` 权限或仅请求必要的媒体文件访问权限: ```xml <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <!-- For accessing all files on external storage (API level >= 30) --> <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> ``` 如果应用目标 SDK 版本低于 30,则只需声明 `READ_EXTERNAL_STORAGE` 即可满足需求[^1]。 #### 获取 USB 存储设备列表 当有新的 USB 设备接入时,可以通过广播接收器监听 `ACTION_USB_DEVICE_ATTACHED` 广播消息,并调用相应方法枚举当前已连接的所有 USB 设备及其挂载点路径。这里可以借鉴 [Android-USB-OTG-Camera](https://gitcode.com/gh_mirrors/an/Android-USB-OTG-Camera) 的做法,该工程展示了如何遍历可用的 USB 外设并与之交互。 #### 扫描指定目录下视频资源 一旦确认了具体的挂载位置,就可以利用 MediaStore 或者 File 类来扫描对应文件夹内的多媒体内容。考虑到效率问题以及更好的用户体验,推荐采用 ContentResolver 结合 Uri 方式查询数据库中记录的信息而不是直接操作文件系统对象。 ```java // 使用ContentResolver查询MediaStore.Video.Media表单获取mp4格式影片条目 String[] projection = new String[]{ MediaStore.Video.Media._ID, MediaStore.Video.Media.DISPLAY_NAME, MediaStore.Video.Media.DATA}; Cursor cursor = getContentResolver().query( MediaStore.Video.Media.EXTERNAL_CONTENT_URI, projection, "mime_type=?", new String[]{"video/mp4"}, null); if(cursor != null){ while(cursor.moveToNext()){ long id = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Video.Media._ID)); String name = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME)); Log.d("VideoList", "Found video: "+name+" with ID="+id); } cursor.close(); } ``` 此段代码片段用于检索位于外置存储区域内的所有 .mp4 格式的视频文件,并打印其名称和唯一标识符至日志输出窗口[^2]。 #### 显示与播放选定项 最后一步就是构建 UI 组件展示找到的结果集供用户选择感兴趣的项目进行预览回放。这通常涉及到 RecyclerView Adapter 模板设计模式的应用场景,配合 VideoView 控件完成实际视屏流渲染任务。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值