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

問題の1つを解決します:(「オーディオを停止できず、アプリを終了すると(ホームキーまたはバックキー)オーディオが再生され続ける」)

この部分は、すべてのアクティビティの 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 に答える