我正在嘗試從我的本地文件系統視頻播放器中播放一個視頻 顯示出來,但視頻甚至不能在手機上顯示或播放, 我做錯了什么嗎?我知道我的文件在哪里 它只是不會播放它的字面上的視頻播放器只有一個空白 屏幕。?
下面是我使用的代碼,顯示了一個空的視頻播放器
import React from 'react';
import { StyleSheet, Text, View, Dimensions } from 'react-native';
import { Video } from 'expo';
import { MaterialIcons, Octicons } from '@expo/vector-icons';
export default class App extends React.Component {
state = {
mute: false,
shouldPlay: true,
}
handlePlayAndPause = () => {
this.setState((prevState) => ({
shouldPlay: !prevState.shouldPlay
}));
}
handleVolume = () => {
this.setState(prevState => ({
mute: !prevState.mute,
}));
}
render() {
const { width } = Dimensions.get('window');
return (
<View style={styles.container}>
<View>
<Text style={{ textAlign: 'center' }}> spiderman </Text>
<Video
source={{ uri: 'file://C:\Windows\System32\avenger\spiderman.mp4' }}
shouldPlay={this.state.shouldPlay}
resizeMode="cover"
style={{ width, height: 300 }}
isMuted={this.state.mute}
/>
<View style={styles.controlBar}>
<MaterialIcons
name={this.state.mute ? "volume-mute" : "volume-up"}
size={45}
color="white"
onPress={this.handleVolume}
/>
<MaterialIcons
name={this.state.shouldPlay ? "pause" : "play-arrow"}
size={45}
color="white"
onPress={this.handlePlayAndPause}
/>
</View>
</View>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
controlBar: {
position: 'absolute',
bottom: 0,
left: 0,
right: 0,
height: 45,
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'center',
backgroundColor: "rgba(0, 0, 0, 0.5)",
}
});
對于本地文件,您應該使用require not uri,我也試圖重現您的代碼,但我不確定file:React Native中的語法。所以我使用了相對路徑
<Video
source={require('./utils/video_2018-08-16_14-12-06.mp4')}
shouldPlay={this.state.shouldPlay}
resizeMode="cover"
style={{ width, height: 300 }}
isMuted={this.state.mute}
/>
這是從手機的本地存儲中獲取視頻的代碼。
看起來,視頻儲存在電腦上:source = { { uri:' file://C:\ Windows \ System32 \ avenger \ spiderman . MP4 ' } }
你還沒有告訴我們網站在哪里。如果是本地網站,應該可以。但如果是在網上,顯然就不行,因為它指的是儲存在電腦上的視頻,而不是互聯網上的。你需要上傳視頻到網站主機,并改變來源。雖然這個問題不是真正的CSS。