2017-03-25 47 views
0

這裏的時候,移動當前的時間位置是java文件:如何從0.00秒打出

import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.util.Log; 
import android.view.View; 
import android.widget.ImageView; 
import android.widget.TextView; 

public class AudioPlayer extends AppCompatActivity { 
    ImageView mIvPlayControl; 
    TextView mTvTotalDuration; 
    TextView mTvCurrentPosition; 
    MediaPlayer mp; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.music_player2); 

     mIvPlayControl= (ImageView) findViewById(R.id.iv_play); 
     mTvTotalDuration= (TextView) findViewById(R.id.tv_total); 
     mTvCurrentPosition= (TextView) findViewById(R.id.tv_progress); 
     mp = MediaPlayer.create(AudioPlayer.this, R.raw.sleep_away); 
     int mCurrentPosition=mp.getCurrentPosition(); 
     int duration=mp.getDuration(); // miliseconds time 
     //convert into seconds 
     duration=duration/1000; 
     mCurrentPosition=mp.getCurrentPosition()/1000; 
     Log.e("value","value: "+duration); 
     mTvTotalDuration.setText(String.valueOf(duration)); 
     mTvCurrentPosition.setText(String.valueOf(mCurrentPosition)); 

     mIvPlayControl.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (mp.isPlaying()) { 
        mp.pause(); 
        mIvPlayControl.setImageResource(R.mipmap.play_small); 

       } else { 
        mp.start(); 
        mIvPlayControl.setImageResource(R.mipmap.pause_small); 
       } 

      } 
     }); 

這裏是佈局文件:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:gravity="center" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:weightSum="3" 
     android:gravity="center" 
     > 
     <TextView 
      android:id="@+id/tv_progress" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:gravity="center" 
      android:text="0.00" 
      /> 

     <ImageView 
      android:id="@+id/iv_play" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:src="@mipmap/play_small" 

      /> 

     <TextView 
      android:id="@+id/tv_total" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:layout_weight="1" 
      android:text="0.00" 
      /> 
    </LinearLayout> 

</LinearLayout> 

如何移動的開始時間0當玩過?我必須添加搜索欄才能獲得移動時間嗎?有人可以幫忙嗎?歌曲可以播放,但定時器不起作用。更多細節或問題在評論中。

+0

你想創建搜索欄和MediaPlayer的之間的「連接」? –

+0

不,我只是想移動它的當前位置,就像我按0.00播放它的停留時間,但歌曲仍在播放。所以我想知道如何從0.00開始改變時間和以後的時間。 –

+0

我想這個答案會幫助你: [http://stackoverflow.com/a/17171025/6862286](http://stackoverflow.com/a/17171025/6862286) –

回答

0

假設mTvCurrentPlayTime被TesxtView代表屏幕上當前播放時間,那麼你可以用下面的代碼更新視圖:

Handler mHandler = new Handler(); 
//Make sure you update TextView on UI thread 
AudioPlayer.this.runOnUiThread(new Runnable() { 

    @Override 
    public void run() { 
     if(mp!= null){ 
      int mCurrentPosition = mp.getCurrentPosition()/1000; 
      mTvCurrentPosition.setText(String.valueOf(mCurrentPosition)); 
     } 
     mHandler.postDelayed(this, 1000); 
    } 
}); 
+0

有沒有什麼辦法可以發表很長的回覆,因爲我得告訴你編碼, –

+0

@ShubhangAgarwal如果你編輯你的問題並添加你的代碼會更好。幫助其他人幫助您解決問題很有幫助。 –

+0

自從我編輯一個問題以來,這是一天。你能幫忙嗎? –