اذهب إلى المحتوى

السؤال

نشر (معدل)

عندي صفحه React فيها فيديوهات كثيره ازاي اجعل فيديو واحد فقط يشتغل وعندما اشغل فيدو اخر الفيديو الاول يقف والثاني هو الي يشتغل

تم التعديل في بواسطة Wael Aljamal
توضيح السؤال

Recommended Posts

  • 0
نشر

لنفرض لديك مصفوفة بعناوين هذه الفيديوهات ربما تجلبها من API أو من التخيزن المحلي

const Videos = [
  {
    videoURL: 'url_1',
  },
  {
    videoURL: 'url_2',
  },
  {
    videoURL: 'url_3',
  },
];

إن كنت تريد تشغيل فيديو واحد بمكانه، عليك عرضهم ضمن قائمة، وعند الضغط على أي فيديو، تود لتبني العرض وتفعل التشغيل التلقائي ل ID الفيديو المضغوط عليه.

أما إن كان لديك مكون واحد لاستعراض الفيديوهات، 

  render() {
    return 
      (<video src={videos[this.state.currentUrlIdx].VedioURL} autoPlay onEnded={this.handleEnded}/)>;
  }

ودالة للاستجابة لتغيير رابط الفيديو

// حالة لتخزين الفيديو قيد التشغيل
this.state = {
	currentUrlIdx: 0,
}

  
// حدث الاستجابة لانتهاء الفيديو والانتقال للتالي
handleEnded(e) {
	const nextUrlIdx = (this.state.currentUrlIdx + 1) % Vedios.length; // حساب رقم الفيديو التالي
	this.setState({ currentUrlIdx: nextUrlIdx });
}

*****

على كل حال، في الدالة المسؤولة عن الاستجابة لحدث النقر على فيديو معين (لتغيير الفيديو الذي يعمل) يكون لدينا reference أو مرجع للفيديو قيد التشغيل، محفوظ في الحالة، نوقف عمله ثم نحدث الحالة بالفيديو الجديد و نشغله.

  playVideo = () => {
    state.video.play()
  };

  pauseVideo = () => {
    state.video.pause();
  };

handelChangeVedio() => {
  pauseVideo()
  setState({vedio: newVedio});
  playVideo()
}

onPress() => {
	handelChangeVedio()
}

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...