2011-01-10 11 views

答えて

2

私はMediaPlayerと遊んでいませんが、私はrelease()コールなしで試してみます。 This exampleは使用していません。そしてdocsは、それが再生した後に呼び出されるクリーンアップの方法だと言う:

このMediaPlayerのオブジェクトに関連付けられているリソースを解放します。 MediaPlayerを使用したときにこの メソッドを呼び出すとよい練習と考えられるのは、 です。

+0

()。 – Androider

1

私はあなたがコンストラクタを使いこなしていると思います。静的にMediaPlayerをインスタンス化することができます:MediaPlayer.create(Context context, int resid)これは最も簡単な方法です。play()に電話するだけです。また、有効なコンテキストが必要です。つまり、アクティビティやサービス内でMediaPlayerを作成している場合は、コンテキストとして「this」を渡すだけです。

また、「通常の」コンストラクタMediaPlayer()を使用することができますが、あなたは明示的にplay()setDataSource()prepare()にコールする必要があります。

さらに、Grzegorzが書いたように、play()の直後にrelease()を呼び出すことはお勧めできません。

0

あなたはこのサンプルをfolowすることができます:それもリリースせずに私のために働いていない

public void audioPlayer(String path, String fileName){ 
    //set up MediaPlayer  
    MediaPlayer mp = new MediaPlayer(); 

    try { 
     mp.setDataSource(path+"/"+fileName); 
    } catch (IllegalArgumentException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IllegalStateException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    try { 
     mp.prepare(); 
    } catch (IllegalStateException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    mp.start(); 
} 
関連する問題