作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一个带有 expo 库的 react-native 移动应用程序。由于 expo 不支持每个第三方库,因此项目必须与 expo 分离。
当我尝试将视频播放器添加到项目中时,出现了我的问题。
我想可能是其他一些库与视频播放器发生冲突,所以我制作了一个新的干净项目,只有视频播放器。
干净的项目与主项目具有相同的设置,react-native with detached expo。
我按照本指南从博览会中分离:https://docs.expo.io/versions/v28.0.0/expokit/detach/
我按照本指南设置 react-native-unimodels:https://github.com/unimodules/react-native-unimodules
我按照本指南添加了视频库:https://github.com/expo/expo/tree/master/packages/expo-av
当我尝试在 Android Studio 中编译代码时,我得到以下错误输出:
我的 App.js
代码:
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import { Video } from 'expo-av';
export default class App extends React.Component {
render() {
return (
<Video
source={{ uri: 'http://d23dyxeqlo5psv.cloudfront.net/big_buck_bunny.mp4' }}
rate={1.0}
volume={1.0}
isMuted={false}
resizeMode="cover"
shouldPlay
isLooping
style={{ width: 300, height: 300 }}
/>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
});
public class MainApplication extends ExpoApplication implements AppLoaderPackagesProviderInterface {
private final ReactModuleRegistryProvider mModuleRegistryProvider = new ReactModuleRegistryProvider(Arrays.<Package>asList(
new ReactAdapterPackage(),
new ConstantsPackage(),
new PermissionsPackage(),
new FileSystemPackage(),
new AVPackage()
), Arrays.<SingletonModule>asList());
@Override
public boolean isDebug() {
return BuildConfig.DEBUG;
}
// Needed for `react-native link`
public List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new ModuleRegistryAdapter(mModuleRegistryProvider)
);
}
public List getExpoPackages() {
return Arrays.asList(
new CameraPackage(),
new ConstantsPackage(),
new SensorsPackage(),
new FileSystemPackage(),
new FaceDetectorPackage(),
new GLPackage(),
new GoogleSignInPackage(),
new PermissionsPackage(),
new SMSPackage(),
new PrintPackage(),
new ConstantsPackage(),
new MediaLibraryPackage(),
new SegmentPackage(),
new FontLoaderPackage(),
new LocationPackage(),
new ContactsPackage(),
new BarCodeScannerPackage(),
new AdMobPackage(),
new LocalAuthenticationPackage(),
new LocalizationPackage(),
new AppAuthPackage(),
new TaskManagerPackage(),
new BackgroundFetchPackage()
);
}
@Override
public String gcmSenderId() {
return getString(R.string.gcm_defaultSenderId);
}
@Override
public boolean shouldUseInternetKernel() {
return BuildVariantConstants.USE_INTERNET_KERNEL;
}
public static OkHttpClient.Builder okHttpClientBuilder(OkHttpClient.Builder builder) {
// Customize/override OkHttp client here
return builder;
}
}
最佳答案
您可以使用 video module
没有分离它。
你不需要做expo eject
.
视频示例.js:
import { Video } from 'expo';
...
<Video
source={{ uri: 'http://d23dyxeqlo5psv.cloudfront.net/big_buck_bunny.mp4' }}
rate={1.0}
volume={1.0}
isMuted={false}
resizeMode="cover"
shouldPlay
isLooping
style={{ width: 300, height: 300 }}
/>
关于android - 独立世博项目中的视频播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55686328/
我是一名优秀的程序员,十分优秀!