Здравствуйте, я разрабатываю мобильное приложение , которое позволяет вам записывать видео в караоке со звуком назад, для этого я использую технологию response-native благодаря реагировать-нативно-видео !но здесь я сталкиваюсь с большой проблемой: после начала записи видео и установки звука в фоновом режиме, если у меня нет наушников , подключите звук, воспроизводимый в фоновом режиме, записывайте видео и сохраняйте хорошо, нокогда наушники подключены во время записи, сохраненное видео не содержит звука, воспроизводимого в фоне , а содержит только текст песни с микрофоном наушников
Так что звук, которыйВоспроизведение в фоновом режиме направлено только на наушники и не записывается микрофоном телефона во время записи видео, я нахожусь с караоке без звука в фоновом режиме, но с полной идеейкараоке.Чтобы попытаться решить эту проблему, я провел некоторое исследование по настройке, чтобы учесть это на github-аккаунте проекта response-native-video, не найдя чего-либо, поэтому примеры, которые я видел в Интернете другим разработчиком, не затрагивали этот аспект реакции.native-видео, когда звук должен воспроизводиться после того, как наушники подключаются и затем сохраняются вместе с записанным видео
Теперь вот часть моего кода, которая сначала управляет всем, что записываетвсего для интерфейсов, чтобы начать запись у меня есть это
для рендеринга constante
const { paused, audioDownloading, playing, record, cameraType, challenge, loading, error, saving, focusedScreen } = this.state;
, а затем для видео
<View style={styles.bottomBar}>
<Video
ref={(ref) => {
this.player = ref;
}}
source={{ uri: challenge.music }}
onLoad={this.onLoad}
onProgress={this.onProgress}
// onEnd={this.onEnd}
paused={paused}
volume={challenge.type === 'DANCE' ? 1 : 0.1}
repeat={false} />
....
....
</TouchableOpacity>
<TouchableOpacity onPress={paused === true ? this._onRecordPress : null}>
<Image source={require('../static/images/record.png')} />
</TouchableOpacity>
<TouchableOpacity onPress={!!record ? this._onPlayPress : null} style={{width: 64, height: 64}}>
<Image source={require('../static/images/icons/ic_play-circle.png')} style={{margin: 10}} />
</TouchableOpacity>
</View>
</View>
</View>
вы можете заметить, что у меня естьопределил свойство источника, сославшись на uri аудио для воспроизведения в фоновом режиме (challenge_music).
затем кнопка для запуска записи управляется событием для записи, определяемым следующими строками кода
_onRecordPress = async () => {
this.setState({ recording: true, paused: false });
const { uri, codec = "mp4" } = await this.camera.recordAsync({maxDuration: this.state.duration});
this.setState({record: uri});
};
и остановка записи определяется следующим событием:
_onStopPress = async () => {
this.camera.stopRecording();
this.setState({ paused: true, currentTime: 0 });
this.player.seek(0);
};
, поэтому теперь запись выполняется правильно, когда мы просто используем микрофон мобильного телефона со звуком, который воспроизводится в фоновом режиме после записи видео, но как только подключены наушники , то, что мы получаем в процессе записи, больше касается ее спины.Так как же я могу продолжить, чтобы запись видео в наушниках не содержала караоке, как сейчас, а также звук, воспроизводимый на заднем плане!?!: -)