玩Mp3 Intent Android Studio

时间:2017-08-17 07:09:40

标签: android android-intent

我在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

中添加这个来播放mp3
i.putExtra("selectedMp3",R.raw.file);

并在DetailActivity

中添加此内容
int mp3 = getIntent().getIntExtra("selectedMp3", 0);
final MediaPlayer mp = MediaPlayer.create(this, mp3);
mp.start();

但是在反印或进入主屏幕时声音仍在播放, 如何在反印时停止声音或进入主屏幕,

3 个答案:

答案 0 :(得分:3)

他们有两种播放音频或mp3文件的方式。

  1. 使用Intents并在应用程序外播放:

    Intent i = new Intent();  
    i.setAction(android.content.Intent.ACTION_VIEW);  
    intent.setDataAndType(Uri.fromFile(new File(path)), "audio/*");  
    startActivity(in);
    
  2. 如果您使用此方法并且如果构建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/*");
    
    1. 使用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);