我在callintent()
中有MainActivity
方法:
public void callintent (View view){
Intent i = new Intent (this, DetailActivity.class);
i.putExtra("string", "String Text");
i.putExtra("img", R.drawable.icon);
startActivity(i);
}
该方法是为DetailActivity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
Intent i = getIntent();
String string = i.getStringExtra("string");
TextView textview = (TextView) findViewById(R.id.text);
textview.setText(string);
ImageView imageView = (ImageView) findViewById(R.id.image);
imageView.setImageDrawable(getResources().getDrawable(getIntent().getIntExtra("img",0)));
}
我成功地在DetailActivity
中显示了文字和图片,但现在我想要在DetailActivity
中添加mp3文件进行播放,其中文件设置在MainActivity
,
请帮助我,谢谢
- 已编辑 -
我可以在MainActivity
i.putExtra("selectedMp3",R.raw.file);
并在DetailActivity
int mp3 = getIntent().getIntExtra("selectedMp3", 0);
final MediaPlayer mp = MediaPlayer.create(this, mp3);
mp.start();
但是在反印或进入主屏幕时声音仍在播放, 如何在反印时停止声音或进入主屏幕,
答案 0 :(得分:3)
他们有两种播放音频或mp3文件的方式。
使用Intents并在应用程序外播放:
Intent i = new Intent();
i.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(path)), "audio/*");
startActivity(in);
如果您使用此方法并且如果构建gradle的android sdk版本大于23,则必须使用FileProvider授予访问应用程序外部文件的权限,标志和操作将如下所示:
i.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
i.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
i.setDataAndType(FileProvider.getUriForFile(this,BuildConfig.APPLICATION_ID + ".provider",file), "audio/*");
使用Media Player并在应用中播放它们并在清单中添加相关权限:
MediaPlayer mPlayer = MediaPlayer.create(this,R.raw.example); mPlayer.start();
答案 1 :(得分:0)
步骤1:将您的mp3文件放在raw
文件夹
第2步:在MediaPlayer
DetailActivity
代码下面拨打电话
MediaPlayer mPlayer = MediaPlayer.create(this, R.raw.example);
mPlayer.start();
答案 2 :(得分:0)
Intent in = new Intent();
in.setAction(android.content.Intent.ACTION_VIEW);
File file = new File(File_Path);
intent.setDataAndType(Uri.fromFile(file), "audio/*");
startActivity(in);