動的な時間間隔で写真と動画の数を表示したい。私の条件はAndroid:動的な時間間隔で写真と動画を表示
1)ビデオを表示します。2)ビデオがあるときは、ビデオを再生して、タスクを停止します。 3)ビデオの再開スレッドを再生した後、または使用したものを再生した後。
私はスレッドを使用しようとしましたが、ビデオに問題があり、スレッドは予期しない動作をします。以下のいずれかのよりよい解決策や提案、
がMainActivity.class
timer = new Thread() {
public void run() {
try {
for (int z = 0; z < userStories.size(); z++) {
Log.e("File Name--->", userStories.get(z).getFileName());
Log.e("File TYPEEEE--->", userStories.get(z).getType());
if (userStories.get(z).getType().equalsIgnoreCase("photo")) {
Log.e("SLEEEEEPppp-->", "SO GAYA THREAD");
sleep(Long.parseLong(userStories.get(z).getDisplayTime()) * 1000);
final int finalZ = z;
runOnUiThread(new Runnable() {
@Override
public void run() {
image.setVisibility(View.VISIBLE);
video_view.setVisibility(View.GONE);
Glide.with(getApplicationContext())
.load(userStories.get(finalZ).getFileName())
.into(image);
}
});
} else if (userStories.get(z).getType().equalsIgnoreCase("video")) {
/*synchronized (this) {
Log.e("Waitttttt-->", "Wait kar riya he...");
wait();
}*/
final int finalZ2 = z;
runOnUiThread(new Runnable() {
@Override
public void run() {
image.setVisibility(View.GONE);
video_view.setVisibility(View.VISIBLE);
String VideoURL = userStories.get(finalZ2).getFileName();
uri = Uri.parse(VideoURL);
if (!TextUtils.isEmpty(VideoURL)) {
video_view.setVideoURI(uri);
video_view.requestFocus();
video_view.start();
video_view.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
pauseWork = false;
}
});
video_view.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
Log.e("VIDEooooooo--->", "Completeeeee");
Log.e("Thread Notifyyyy--->", "Hooo Gayaaaaaa");
timer.interrupt();
}
});
}
}
});
/*synchronized (timer) {
Log.e("WAITTTTTT-->", "WAIT KAR RIYA HE");
timer.wait();
}*/
}
final int finalZ1 = z;
runOnUiThread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < userStories.size(); i++) {
if (i == finalZ1) {
dots[i].setImageDrawable(getResources().getDrawable(R.drawable.selecteditem_dot));
} else {
dots[i].setImageDrawable(getResources().getDrawable(R.drawable.nonselecteditem_dot));
}
}
}
});
}
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
runOnUiThread(new Runnable() {
@Override
public void run() {
}
});
}
}
};
timer.start();
助けてくれてありがとうの私のコードは、事前
あなたが代わりにハンドラを使用することができます
私はあなたがJobSchedulerを使用できると思います。 @ Shruti –
あなたが今まで試したことを投稿してください – Akshay
@Akshay、私は – Shruti