在MediaPlayer准备播放时显示ProgressBar可以通过以下步骤实现:
<RelativeLayout 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"
tools:context=".MainActivity">
<SurfaceView
android:id="@+id/surfaceView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.ProgressBar;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity implements MediaPlayer.OnPreparedListener {
private MediaPlayer mediaPlayer;
private SurfaceHolder surfaceHolder;
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SurfaceView surfaceView = findViewById(R.id.surfaceView);
progressBar = findViewById(R.id.progressBar);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder holder) {
mediaPlayer = new MediaPlayer();
mediaPlayer.setDisplay(surfaceHolder);
mediaPlayer.setOnPreparedListener(MainActivity.this);
try {
mediaPlayer.setDataSource("YOUR_MEDIA_FILE_URL");
mediaPlayer.prepareAsync();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
mediaPlayer.release();
}
});
}
@Override
public void onPrepared(MediaPlayer mp) {
progressBar.setVisibility(View.GONE);
mediaPlayer.start();
}
}
在上述代码中,通过SurfaceView来显示MediaPlayer的视频内容,通过ProgressBar来显示准备播放时的进度。当MediaPlayer准备完成时,ProgressBar将被隐藏,MediaPlayer开始播放。
请注意,上述代码中的"YOUR_MEDIA_FILE_URL"应替换为实际的媒体文件URL。
推荐的腾讯云相关产品:腾讯云移动直播(https://cloud.tencent.com/product/mlvb)可以用于实现在移动设备上播放和直播音视频内容。
领取专属 10元无门槛券
手把手带您无忧上云