0

我无法从我的应用程序中播放音频文件,这是我的代码:

Integer[] mAudio = {
    R.raw.audioa,
    R.raw.audiob,
    R.raw.audioc,
    R.raw.audiod,

};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.playing);  
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);


    Gallery gallery = (Gallery) findViewById(R.id.gallery4);
    gallery.setAdapter(new ImageAdapter(this));
    gallery.setOnItemClickListener(new OnItemClickListener() {

 public void onItemClick(AdapterView<?> parent, View v, final int position, long id){

final ImageView imageView = (ImageView) findViewById(R.id.Image7);
imageView.setImageResource(mFullSizeIds[position]);
mageView.setOnClickListener(new View.OnClickListener() {

@Override
Public void onClick(View arg0) {

    android.media.MediaPlayer.create(Audio.this,mAudio[position]);
    Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI);
    startActivity(intent);                           

         }
});

这个想法是当用户从图库中选择图像,然后选择音频应该播放的较大图像。但是,当我使用此代码时:

 MediaPlayer mp = MediaPlayer.create(Owls.this,mAudio[position]);  
 mp.start();

然后效果很好,但无法停止音频,并且在退出应用程序(主页键或返回键)时,音频会继续播放。我需要实现的是,当用户选择图像时,它应该询问您要使用哪个播放器,然后播放该图像的音轨。目前它只是调出我的整个媒体库,而不是这段代码中指定的音频文件:

android.media.MediaPlayer.create(Birds.this,mAudio[position]);

它应该只播放该图像的音频文件,而不是为这个应用程序调出整个音轨。
任何人有任何想法,请能够帮助我?谢谢

4

1 回答 1

0

它将解决您的一个问题:('无法停止音频,退出应用程序(主页键或返回键)时,音频继续播放')

这部分必须在每个活动的 onPause 中:

Context context = getApplicationContext();
        ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        List<RunningTaskInfo> taskInfo = am.getRunningTasks(1);
        if (!taskInfo.isEmpty()) {
          ComponentName topActivity = taskInfo.get(0).topActivity; 
          if (!topActivity.getPackageName().equals(context.getPackageName())) {
            player.stop();
            Toast.makeText(xYourClassNamex.this, "YOU LEFT YOUR APP", Toast.LENGTH_SHORT).show();
          }
        }

因此,当您退出应用程序时,您可以停止播放器。

于 2013-08-03T07:56:53.940 回答