2015-06-13 46 views
1

給定的時間量播放音頻我新的Android開發。在Android電子

在這個應用程序,我想音頻某些時間玩(比如20秒)。 20秒後它不應該開始播放。我用getDuration()方法,但我沒有得到我需要的。

代碼:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    setVolumeControlStream(AudioManager.STREAM_MUSIC); 
    Button button1=(Button)findViewById(R.id.button1); 
    Button button2=(Button)findViewById(R.id.button2); 
    button1.setOnClickListener(this); 
    button2.setOnClickListener(this); 
} 

public void onClick(View v) { 
    int resId; 
    switch (v.getId()) { 
    case R.id.button1: 
     resId = R.raw.a; 
     break; 
    case R.id.button2: 
     resId = R.raw.b; 
     break; 
    default: 
     resId = R.raw.a; 
     break; 
    } 
    // Release any resources from previous MediaPlayer 
    if (mp != null) { 
     mp.release(); 
    } 

    mp = MediaPlayer.create(this, resId); 
    mp.start(); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

@Override 
protected void onDestroy() { 
    if(null!=mp){ 
     mp.release(); 
    } 
    super.onDestroy(); 
} 
+0

它不是從什麼是你想實現的問題清楚。你是什​​麼意思呢:20秒後,它不應該開始玩 – John

+0

音頻應該像一個樣本音頻(即,以秒爲有限的時間)玩 – Prakash

+0

http://stackoverflow.com/questions/4958003/play-mediaplayer-for - 某些持續時間 –

回答

3

嘗試這樣的:

mp.start(); 
Handler handler=new Handler(); 
handler.postDelayed(new Runnable() { 
    @Override 
    public void run() { 
     mp.stop(); 
    } 
}, 20 * 1000); 

超過20秒,聲音將停止。

+0

感謝@Chandrakanth它的工作對我來說... – Prakash