Я пытаюсь отключить функцию поиска при реагировании на собственное видео. У меня есть полное видео, которое я хочу просмотреть в течение 30 секунд. Для этого я хочу отключить кнопку поиска, чтобы пользователь не мог пропустить видео.
Я попытался присвоить onSeek значение функции, которая выходит из видеоплеера, но, похоже, это ничего не дает.
if (!loading) {
return <Video source = {{uri: uri}} // Can be a URL or a local file.
onFullscreenPlayerDidDismiss = {this.onDismiss}
preferredPeakBitrate = {this.state.preferredPeakBitrate}
ref = {(player) => {
if (!this.state.playing && player) {
player.presentFullscreenPlayer()
this.setState({ playing: true })
}
}} // Store reference
rate = {1.0} // 0 is paused, 1 is normal.
volume = {1.0} // 0 is muted, 1 is normal.
muted = {false} // Mutes the audio entirely.
paused = {false} // Pauses playback entirely.
resizeMode = "cover" // Fill the whole screen at aspect ratio.*
repeat = {false} // Repeat forever.
playInBackground = {true} // Audio continues to play when app entering background.
playWhenInactive = {true} // [iOS] Video continues to play when control or notification center are shown.
ignoreSilentSwitch = {"ignore"} // [iOS] ignore | obey - When 'ignore', audio will still play with the iOS hard silent switch set to silent. When 'obey', audio will toggle with the switch. When not specified, will inherit audio settings as usual.
progressUpdateInterval = {PROGRESS_MILLISECONDS} // [iOS] Interval to fire onProgress (default to ~250ms)
onError = {this.onVideoError} // Callback when video cannot be loaded
onProgress = {this.onProgress}
onLoadStart = {this.onStart}
onEnd = {this.stopPlaybackPing}
/>
} else {
return <View />
}
}
Я обновил вопрос, чтобы сделать его более ясным. Я хочу предварительно просмотреть видео для пользователя и использовать тот же полный файл.
Вы звонили presentFullscreenPlayer(), чтобы воспроизвести видео?
Да я звонил presentFullscreenPlayer()





Краткий ответ: нет, нельзя.
Вы вызвали presentFullscreenPlayer() для воспроизведения видео, к сожалению, вы не можете отключить какие-либо кнопки на плеере. Потому что это проигрыватель по умолчанию, созданный Apple, если вы запускаете свое приложение на iPhone, а не людьми, создавшими react-native-video, и я не верю, что существует какой-либо общедоступный API, который позволяет вам это делать.
Однако вы можете написать свой собственный полноэкранный проигрыватель с любой кнопкой, которую вы хотите / не хотите. Вот подсказка:
Создайте пользовательский компонент под названием CustomVideo, который принимает URL-адрес видео в качестве опоры:
// CustomVideo.js file
import React, { PureComponent } from 'react';
import { ... } from 'react-native';
import Video from 'react-native-video';
export class CustomVideo extends PureComponent {
constructor(props) {
super(props)
this.state = {
// Have any state you want here, for example
paused: false,
played: 0,
duration: 0,
isFullscreen: false
}
}
render() {
const { url } = this.props;
const { paused, played, duration, isFullscreen } = this.state;
return(
<View style = {{ ... }}>
<Video
source = {{ uri: url }}
...
/>
// =======> Here, you add your custom buttons <=======
// Suppose you want a pause/play button
<TouchableOpacity onPress = {this.toggleVideo}>
<Text>{paused ? "Play" : "Pause"}</Text>
</TouchableOpacity>
// If you want a progress indicator, which users
// can use to skip videos, then use `Slider` component
<Slider
value = {...}
step = {...}
onValueChange = {(value) => ...}
/>
// Here, you toggle whether you want to play the video
// in full screen mode, if so, render it in a modal
// Also, add a full screen toggle button to the video
// the same way you add a play/pause button
<Modal visible = {isFullscreen}>
<View>
<Video ... />
</View>
</Modal>
</View>
);
}
}
Итак, в следующий раз, когда вы захотите визуализировать видео, вместо вызова <Video source = {{ uri: '...' }} /> вы можете вызвать свой компонент <CustomVideo url='https://....' />.
В модальном окне вам нужно будет добавить те же настраиваемые кнопки, как определено выше, правильно?
Что ты пытаешься сделать? Например, опишите подробнее сценарий, почему вы хотите отключить функцию поиска и т. д. Трудно понять, чего вы пытаетесь достичь.