Загрузка видео партиями по 20 штук в Android JavaAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Загрузка видео партиями по 20 штук в Android Java

Сообщение Anonymous »

Я хочу загружать видео партиями по 20, чтобы мое приложение не зависало. Мое приложение загружает все видео одновременно, из-за чего оно тормозит или иногда выходит из строя.

Код: Выделить всё

public class AllVideosActivity extends AppCompatActivity {

ActivityAllVideosBinding binding;
ArrayList videoList;
ListVideoAdapter adapter;

String foldername;
String folderPath;

private static String AD_UNIT_BANNER = "ca-app-pub-3940256099942544/9214589741";
public static InterstitialAd interaddds;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityAllVideosBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());

binding.foldertitle.setSelected(true);
folderPath = getIntent().getStringExtra("folderPath");
videoList = new ArrayList();

ArrayUtil.videoItemArrayList = new ArrayList();
ArrayUtil.videoItemArrayList.addAll(videoList);
adapter = new ListVideoAdapter(videoList, this, 1, new OnClickAdapter() {
@Override
public void onClick(int position) {
Intent intent = new Intent(AllVideosActivity.this, VideoPlaingActivity.class);
intent.putExtra("position", position);
intent.putExtra("videotitle", videoList.get(position).getVideoName());
intent.putExtra("videopath", videoList.get(position).getVideoPath());
intent.putExtra("foldername", foldername);

startActivity(intent);
}
});
listVideos();

binding.videolist.setLayoutManager(new LinearLayoutManager(this));
binding.videolist.setAdapter(adapter);

foldername = getIntent().getStringExtra("folderName");

binding.foldertitle.setText(foldername);

binding.back.setOnClickListener(v -> {
onBackPressed();
});

}

private void listVideos() {
Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
String[] projection = {
MediaStore.Video.Media.TITLE,
MediaStore.Video.Media.DATA,
MediaStore.Video.Media.SIZE,
MediaStore.Video.Media.DURATION,
MediaStore.Video.Media.DATE_MODIFIED
};

String selection = MediaStore.Video.Media.DATA + " like ?";
String[] selectionArgs = new String[]{"%" + folderPath + "%"};
String sortOrder = MediaStore.Video.Media.DATE_MODIFIED + " DESC";

Cursor cursor = getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder);

if (cursor != null) {
while (cursor.moveToNext()) {
String videoName = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.TITLE));
String videoPath = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA));
String videoDuration = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATION));
long videoSize = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.SIZE));
long modifiedDateMillis = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATE_MODIFIED)) * 1000L;

String formattedDate = new SimpleDateFormat(" dd MMM", Locale.getDefault()).format(modifiedDateMillis);

VideoItem videoItem = new VideoItem(videoName, videoPath, videoDuration, videoSize, formattedDate, null);
videoList.add(videoItem);
ArrayUtil.videoItemArrayList.add(videoItem);

}
cursor.close();
}
}

@Override
protected void attachBaseContext(Context newBase) {
SharedPreferences sharedPreferences = newBase.getSharedPreferences("LanguagePrefs", Context.MODE_PRIVATE);
String keylott = sharedPreferences.getString("keylot", "en");
super.attachBaseContext(LocaleHelper.setLocale(newBase, keylott));
}
}
В этом коде я получаю видео со своего телефона и показываю их в своем приложении. Я хочу сначала загрузить только 20 видео, а затем, если пользователь прокрутит вниз, следующие 20 видео должны быть загружены автоматически. Однако во время моего вызова все видео загружаются одновременно.
Как загрузить только 20 видео одновременно?

Подробнее здесь: https://stackoverflow.com/questions/791 ... droid-java
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Загрузка видео партиями по 20 штук в Android Java
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Прочитать файл с фиксированной длиной с партиями
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Прочитать файл с фиксированной длиной с партиями
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Прочитать файл с фиксированной длиной с партиями
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Прочитать файл с фиксированной длиной с партиями
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»