java - 使用 android 应用程序播放和暂停音乐
问题描述
我正在尝试构建一个读取音乐文件的应用程序,我使用一个按钮来播放/暂停音乐,所以我使用了下面的代码,我遇到的问题是,一旦我点击按钮,音乐就会播放,然后当我点击它停止了,所以当我第三次点击时,音乐没有播放(它只播放一次)
btn1=(Button)findViewById(R.id.btn) ;
try {
mp.setDataSource(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) +String.valueOf("/myfile.3gp"));
} catch (IOException e) {
e.printStackTrace();
}
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
if(!mp.isPlaying()){
mp.prepare();
mp.start();
btn1.setText("pause");
}else{
mp.pause();
btn1.setText("play");
}
}catch(Exception e){e.printStackTrace();}
}
});
解决方案
我认为你只需要调用 mp.prepare(); 一次,因为它应该已经在您第一次按“播放”后创建。您可以使用 onPrepared 方法。也许这个链接可能会有所帮助:这个
推荐阅读
- .net - 导出 AZURE_STORAGE_CONNECTION_STRING="
" - 命令行失败并且 dotnet 在之后崩溃 - javascript - 使用 Angular 包装的 Jquery 库
- nginx - 用于 Odoo 的 CI/CD 的 Nginx 配置
- java - 有没有办法使用 JavaFx 制作 Windows 服务应用程序
- minizinc - MiniZinc:类型错误:找不到具有此签名的函数或谓词:`cost(var int,var int)'
- reactjs - 如何为 React Material UI 控件添加自定义验证?
- ios - Cordova WKWebView 仅在 iPhone 11 Pro 上出现白屏
- regex - 如何仅将 URL 的主要部分与正则表达式匹配?
- vue.js - 将鼠标悬停在 TailwindCSS 中的 div 上时显示按钮
- amazon-web-services - AWS Chime 开发工具包 - CORS 和 ERR_NAME_NOT_RESOLVED