2014-01-16 73 views
-1

我有一個很少的經驗在Java,並希望你能幫助我。如何設置音頻與seekbar播放

我有一個類,其中鏈接到包含3播放,暫停和seekbar按鈕的XML。 和我有3個音頻文件在原始文件夾中,我想讓這個XML播放這些文件。

import android.app.Activity; 
import android.media.MediaPlayer; 
import android.os.Bundle; 

import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.SeekBar; 
import android.widget.TextView; 

public class Recitation extends Activity implements OnClickListener { 

    Button play1, play2, play3, pause1, pause2, pause3, back; 
    TextView title1, subject1, subject2, subject3; 
    SeekBar seek1, seek2, seek3; 


    MediaPlayer media1, media2, media3; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.recitation); 


     getInit(); 
     seekUpdation(); 
    } 





    public void getInit() { 
     // TODO Auto-generated method stub 
     seek1 = (SeekBar) findViewById(R.id.seek_bar1); 
     seek2 = (SeekBar) findViewById(R.id.seek_bar2); 
     seek3 = (SeekBar) findViewById(R.id.seek_bar3); 
     play1 = (Button) findViewById(R.id.Bpl1); 
     play2 = (Button) findViewById(R.id.Bpl2); 
     play3 = (Button) findViewById(R.id.Bpl3); 
     pause1 = (Button) findViewById(R.id.Bps1); 
     pause2 = (Button) findViewById(R.id.Bps2); 
     pause3 = (Button) findViewById(R.id.Bps3); 
     title1 = (TextView) findViewById (R.id.tvRecitMain); 
     subject1 = (TextView) findViewById (R.id.tvRec1); 
     subject2 = (TextView) findViewById (R.id.tvRec2); 
     subject3 = (TextView) findViewById (R.id.tvRec3); 
     seek1.setMax(media1.getDuration()); 
     seek2.setMax(media2.getDuration()); 
     seek3.setMax(media3.getDuration()); 
     media1 = MediaPlayer.create(Recitation.this , R.raw.alnajm); 
     media2 = MediaPlayer.create(Recitation.this , R.raw.alrahman); 
     media3 = MediaPlayer.create(Recitation.this , R.raw.qaf); 

    } 

    Runnable run = new Runnable() { 

      @Override 
      public void run() { 
       seekUpdation(); 
      } 
     }; 


     public void seekUpdation() { 
      // TODO Auto-generated method stub 
      seek1.setProgress(media1.getCurrentPosition()); 
      seek2.setProgress(media2.getCurrentPosition()); 
      seek3.setProgress(media3.getCurrentPosition()); 


     } 
     @Override 
     public void onClick(View view) { 
      switch (view.getId()) { 
      case R.id.Bpl1: 
       media1.start(); 
       break; 
      case R.id.Bps1: 
       media1.pause(); 
       break; 
      case R.id.Bpl2: 
       media2.start(); 
       break; 
      case R.id.Bps2: 
       media2.pause(); 
       break; 
      case R.id.Bpl3: 
       media3.start(); 
       break; 
      case R.id.Bps3: 
       media3.pause(); 
       break; 


      } 


}} 

我在哪裏錯了? 幫助我,謝謝。

回答

0

activity_main.xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" 
    android:orientation="vertical" > 

    <SeekBar android:id="@+id/seekBar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:max="100" /> 

    <TextView android:id="@+id/progress" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

</LinearLayout> 

MainActivity.java

package com.example.mediaplayer; 

import android.app.Activity; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.os.Handler; 
import android.widget.SeekBar; 
import android.widget.TextView; 

public class MainActivity extends Activity { 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     final MediaPlayer mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.music); 
     mediaPlayer.start(); 

     final Handler handler = new Handler(); 

     Runnable runnable = new Runnable() 
     { 
      @Override 
      public void run() 
      { 
       int currentPosition = mediaPlayer.getCurrentPosition()/1000; 
       int duration = mediaPlayer.getDuration()/1000; 
       int progress = (currentPosition * 100)/duration; 

       SeekBar seekBar = (SeekBar) findViewById(R.id.seekBar); 
       seekBar.setProgress(progress); 

       TextView txt = (TextView) findViewById(R.id.progress); 
       txt.setText(String.valueOf(progress) + "%"); 

       handler.postDelayed(this, 1000); 
      } 
     }; 

     handler.postDelayed(runnable, 1000); 
    } 
}