react native + as实现简易本地视频播放器

文章描述了如何在断网环境中开发一个本地视频播放的Android应用,利用React-Native和AndroidStudio(AS)进行打包,通过减少视频文件大小来优化apk包的尺寸。开发者需要配置RN环境,初始化项目,编写屏幕适配和样式,并通过debugger进行调试。在模拟器和真机上进行了测试,成功实现了视频播放功能。
摘要由CSDN通过智能技术生成

1.背景

          存在需要在断网环境能够播放本地视频的需求,这就要求视频存放在本地并且生成安装包。

          点击banner则播放该视频(可在没有网络的情况下播放

2.调研

需求分析: 

          1.考虑使用react-native + as的方式,通过as打包成apk包安装进安卓手机。

          2.视频文件因为需要存放在本地,那么视频文件在不损害文件完整的度的情况下需要尽量的小,从而减少apk包的大小。

准备工作:

          1.安装vscoude,android studio,jdk,夜神模拟器。

          2.配置好react-native环境(参考文档

开始:

         1.熟悉 react-native 标签  (暂时忘记div这些web标签吧,这里不适用)

         2.初始化项目   npx react-native init asTest  默认得到hello wolrd

         3.添加屏幕适配.js(原生需要考虑屏幕宽度对应设计图宽度的单位宽度(高度))

         4.务必认真阅读第一点,添加style文本.js

3.编码:

         1.不展开,想怎么写就怎么写,符合实际需求就行。

4.调试

1.debugger调试

         1.调试  npx react-native run-android,使用as打开默认项目,点击debugger。

         2.会自动检测是否开启as调试。

 

       这时候只要静静的等待,数据写入debugger调试器。

       顺利进入=>,到这里,几乎成功的50%,已经100%还原psd设计稿。

 

       接下来只要,点击banner进入视频就ok了。

 

      很好,视频完美播放。

2.模拟器调试

这时候直接使用as Build是不行的,

 

报错。

解决方法

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

这是可能提示 react-native 不是可执行的方法或命令,只是需要先全局安装 react-native-cli,npm install -g react-native-cli

使用as Build =>apk包

 

将apk包直接拖入夜神模拟器,

 

确保能够正常安装。

3.真机调试。

 

ok,真机正常播放。

npx react-nanpx react-native init AwesomeProjecttive init AwesomeProject

npx react-native init AwesomeProject

React Native 中使用 TypeScript 和 Axios 实现查询功能的步如下: 1. 安装所需的依赖: ``` npm install axios ``` 2. 创建一个查询组件(SearchComponent.tsx)。 ```tsx import React, { useState } from 'react'; import { Button, TextInput, View } from 'react-native'; import axios from 'axios'; interface SearchComponentProps { onSearch: (searchTerm: string) => void; } const SearchComponent: React.FC<SearchComponentProps> = ({ onSearch }) => { const [searchTerm, setSearchTerm] = useState(''); const handleSearch = async () => { try { const response = await axios.get(`https://api.example.com/search?term=${searchTerm}`); // 在这里处理查询结果 console.log(response.data); onSearch(searchTerm); } catch (error) { // 处理错误情况 console.error(error); } }; return ( <View> <TextInput value={searchTerm} onChangeText={(text) => setSearchTerm(text)} /> <Button title="Search" onPress={handleSearch} /> </View> ); }; export default SearchComponent; ``` 3. 在父组件中使用查询组件并处理查询逻辑。 ```tsx import React from 'react'; import { View, Text } from 'react-native'; import SearchComponent from './SearchComponent'; const ParentComponent: React.FC = () => { const handleSearch = (searchTerm: string) => { // 在这里处理查询逻辑,可以更新状态或进行其他操作 console.log('查询关键词:', searchTerm); }; return ( <View> <Text>查询功能示例</Text> <SearchComponent onSearch={handleSearch} /> </View> ); }; export default ParentComponent; ``` 4. 在应用的入口文件中渲染父组件。 ```tsx import React from 'react'; import { AppRegistry } from 'react-native'; import ParentComponent from './ParentComponent'; const App: React.FC = () => { return <ParentComponent />; }; AppRegistry.registerComponent('MyApp', () => App); ``` 以上是一个简单的查询功能的实现示例,你可以根据实际需求进行相应的修改和扩展。记得根据你的项目需要进行网络请求的配置,例如设置请求头、身份验证等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值