【问题标题】:save last position of videoView saved by sharedprefrence and start in last position (android studio)保存由 sharedprefrence 保存的 videoView 的最后一个位置并从最后一个位置开始(android studio)
【发布时间】:2020-09-01 13:31:08
【问题描述】:

保存由 sharedprefrence 保存的 videoView 的最后一个位置并从最后一个位置开始(android studio) 你好我在stackaverflow和其他参考中搜索我的问题,但我没有得到我的答案 . 我在我的应用程序中使用 VideoView 我想将 videoview 的最后一个位置保存在 sharedPrefrence 中以从最后一个位置重新开始,但每次都从 0 开始 请检查我的代码并告诉我该怎么做。

package com.rewass.qurankurdishaudiotranslatev2.activitys;

import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.media.MediaPlayer;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.MediaController;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.VideoView;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.InterstitialAd;
import com.rewass.qurankurdishaudiotranslatev2.R;
import com.rewass.qurankurdishaudiotranslatev2.adapters.RecyclerViewAdapter;
import com.rewass.qurankurdishaudiotranslatev2.model.ModelRecycler;
import com.rewass.qurankurdishaudiotranslatev2.text.Text002;

import java.util.ArrayList;
import java.util.List;

public class A002 extends AppCompatActivity {
    List<ModelRecycler> listItems;
    private InterstitialAd mInterstitialAd;
    String AudioURL = "https://download.quranicaudio.com/quran/mishaari_raashid_al_3afaasee/002.mp3";
    VideoView videoView;
    ProgressBar progressBar008;
    TextView te008;
    int progress;
    RecyclerView myrv;
    String kurdish002 = "http://sirwaan.com/aaap/audios/kurdish/sound/quran/qurankurdish/002.mp3";
    String v2kurdish002 = "https://sirwaan.com/aaap/audios/kurdish/sound/quran/newversionqurankurdish/002.mp3";
    Handler handler;
    GridLayoutManager layoutManager;
    int seekkk;
    @RequiresApi(api = Build.VERSION_CODES.M)

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

        audioSora();


    }

    SharedPreferences preferences ;
    private void audioSora() {
        preferences = getSharedPreferences("pref55",MODE_PRIVATE);

        videoView = findViewById(R.id.videoview002);

        videoView.setVideoPath(v2kurdish002);

        //control media
        MediaController mediaController = new MediaController(this);
        //set view with controller
        videoView.setMediaController(mediaController);
        //set Controller to view


        mediaController.setAnchorView(videoView);

        videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {

                handler = new Handler();
                final Runnable r = new Runnable() {
                    public void run() {
                        SharedPreferences.Editor editor = preferences.edit();
                    int progress = videoView.getCurrentPosition();
                        editor.putInt("seekto", progress);
                        editor.apply();
                        seekkk = preferences.getInt("seekto", 0);
                        Toast.makeText(A002.this, seekkk+"", Toast.LENGTH_SHORT).show();
                       handler.postDelayed(this, 1000); }};

                handler.postDelayed(r, 1000);
                videoView.seekTo(seekkk);
                videoView.start();

            }
        });

    }

}

【问题讨论】:

    标签: android-studio sharedpreferences android-videoview


    【解决方案1】:
    private int time = 0;
    
    private ScheduledExecutorService mScheduledExecutorService;
        Runnable getPositionVideo = () -> {
            time = binding.epVideoView.getCurrentPosition();
            Log.d(TAG, ": " + time);
        };
    
    
         binding.epVideoView.setOnPreparedListener(mediaPlayer -> {
                mediaController.setAnchorView(binding.epVideoView);
                binding.epVideoView.start();
                mScheduledExecutorService = new ScheduledThreadPoolExecutor(1);
                mScheduledExecutorService.scheduleWithFixedDelay(() -> {
                    runOnUiThread(getPositionVideo);
                    MediaControllerCustom.init(url, time);
                }, 1000, 1000, TimeUnit.MILLISECONDS);
            });
    

    【讨论】:

      猜你喜欢
      • 2018-12-15
      • 2017-07-29
      • 2019-11-27
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 2022-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多