كيفية استخدام الفيديو كخلفية في React Native
في هذا backgroundVideo
المنشور ، سننشئ في React Native. إذا كنت قد بدأت للتو مع React Native ، فراجع مقالتي ما تحتاج إلى معرفته لبدء إنشاء تطبيقات الأجهزة المحمولة باستخدام React Native.

يمكن أن يضيف فيديو الخلفية تأثيرًا رائعًا إلى واجهة المستخدم الخاصة بالتطبيق. قد تكون مفيدة أيضًا إذا كنت تريد عرض الإعلانات ، على سبيل المثال ، أو إرسال رسالة إلى المستخدم ، كما نفعل هنا.
سوف تحتاج إلى بعض المتطلبات الأساسية. للبدء ، يجب أن يكون لديك إعداد بيئة التفاعل الأصلي. هذا يعني أن لديك:
- رد فعل الأصلي CLI مثبتة
- أندرويد سك؛ إذا كان لديك جهاز Mac ، فلن تحتاج إليه ، فقط Xcode
ابدء
أول الأشياء أولاً ، دعنا نبدأ تشغيل تطبيق React Native جديد. في حالتي أنا أستخدم رد فعل أصلي cli. لذلك في تشغيل المحطة:
react-native init myapp
يجب أن يقوم هذا بتثبيت جميع التبعيات والحزم لتشغيل تطبيق React Native.
الخطوة التالية هي تشغيل التطبيق وتثبيته على جهاز المحاكاة.
لنظام iOS:
react-native run-ios
هذا يجب أن يفتح محاكي iOS.
على Android:
react-native run-android
قد تواجه بعض المشاكل مع Android. أوصي باستخدام Genymotion ومحاكي Android أو الاطلاع على هذا الدليل الودي لإعداد البيئة.
أول ما سنفعله هو استنساخ الشاشة الرئيسية لتطبيق Peleton. نحن react-native-video
نستخدمه لدفق الفيديو styled-component
والتصميم. لذلك عليك تثبيتها:
- غزل:
yarn add react-native-video styled-components
- NPM
npm -i react-native-video styled-components --save
ثم تحتاج إلى ربط رد فعل أصلي-فيديو لأنه يحتوي على كود أصلي - styled-components
ولسنا بحاجة إلى ذلك. لذلك ببساطة قم بتشغيل:
react-native link
لا داعي للقلق بشأن الأشياء الأخرى ، فقط ركز على Video
المكون. أولاً ، قم باستيراد الفيديو من رد فعل أصلي-فيديو وابدأ في استخدامه.
import import Video from "react-native-video";
دعنا نقسمها:
- المصدر : المسار إلى الفيديو المصدر. يمكنك استخدام عنوان URL بدلاً من ذلك:
source={{uri:"//youronlineVideo.mp4"}}
- النمط: نمط الزي الذي نريد تقديمه للفيديو ، والمفتاح لعمل فيديو الخلفية
- resizeMode: في حالتنا هو
cover
؛ يمكنك المحاولة أيضًاcontain or stretch
ولكن هذا لن يمنحنا ما نريد
والدعائم الأخرى اختيارية.
دعنا ننتقل إلى الجزء المهم: وضع الفيديو في وضع الخلفية. دعونا نحدد الأنماط.
// We use StyleSheet from react-native so don't forget to import it //import {StyleSheet} from "react-native"; const { height } = Dimensions.get("window"); const styles = StyleSheet.create({ backgroundVideo: { height: height, position: "absolute", top: 0, left: 0, alignItems: "stretch", bottom: 0, right: 0 } });
ماذا فعلنا هنا؟
أعطينا الفيديو أ position :absolute
وأعطيناه نافذة height
الجهاز. استخدمنا Dimensions
من React Native للتأكد من أن الفيديو يشغل كامل الارتفاع - top:0, left:0,bottom:0,right:0
- بحيث يشغل الفيديو كل المساحة!
الكود بأكمله:
import React, { Component, Fragment } from "react"; import { Text, View, StyleSheet, Dimensions, TouchableHighlight } from "react-native"; import styled from "styled-components/native"; import Video from "react-native-video"; const { width, height } = Dimensions.get("window"); export default class BackgroundVideo extends Component { render() { return ( Join Live And on-demand classes With world-class instructions right here, right now ); } } const styles = StyleSheet.create({ backgroundVideo: { height: height, position: "absolute", top: 0, left: 0, alignItems: "stretch", bottom: 0, right: 0 } }); // styled-component export const Wrapper = styled.View` justify-content: space-between; padding: 20px; align-items: center; flex-direction: column; `; export const Logo = styled.Image` max-width: 100px; width: 100px; height: 100px; `; export const TextDescription = styled.Text` letter-spacing: 3; color: #f4f4f4; text-align: center; text-transform: uppercase; `; export const ButtonWrapper = styled.View` justify-content: center; flex-direction: column; align-items: center; margin-top: 100px; `; export const Title = styled.Text` color: #f4f4f4; margin: 50% 0px 20px; font-size: 30; text-align: center; font-weight: bold; text-transform: uppercase; letter-spacing: 3; `; const StyledButton = styled.TouchableHighlight` width:250px; background-color:${props => (props.transparent ? "transparent" : "#f3f8ff")}; padding:15px; border:${props => (props.transparent ? "1px solid #f3f8ff " : 0)} justify-content:center; margin-bottom:20px; border-radius:24px `; StyledTitle = styled.Text` text-transform: uppercase; text-align: center; font-weight: bold; letter-spacing: 3; color: ${props => (props.transparent ? "#f3f8ff " : "#666")}; `; export const Button = ({ onPress, color, ...props }) => { return ( {props.title} ); };

يمكنك أيضًا جعل هذا المكون قابلاً لإعادة الاستخدام عن طريق القيام بما يلي:
{this.props.children}
ويمكنك استخدامه مع مكونات أخرى:
هذا الى حد كبير ذلك. شكرا لقرائتك!

تعرف على المزيد حول React Native:
- ما تحتاج إلى معرفته لبدء إنشاء تطبيقات الأجهزة المحمولة في React Native
- التصميم في React Native
وظائف أخرى:
- JavaScript ES6 ، اكتب أقل - أنجز المزيد
- كيفية استخدام التوجيه في Vue.js لإنشاء تجربة مستخدم أفضل
- فيما يلي أكثر الطرق شيوعًا لتقديم طلب HTTP في JavaScript