Используйте более быстрое -preset
и потоковое копирование (re-mux) аудио вместо перекодирования его:
[110 ]
Вы можете кодировать ~ 20 сегментов, соответствующих тем же параметрам, что и основной вход, а затем объединить с демультиплексором concat в режиме потокового копирования. Однако это будет хлопотно, потому что согласование параметров не является тривиальным для большинства пользователей, директива concat inpoint
не гарантирует точного поиска с использованием не входных данных, и в любом случае вы можете столкнуться с проблемами с метками времени.
Самый быстрый способ - использовать плеер для наложения логотипа:
mpv --lavfi-complex="[vid1][vid2]overlay=5:5:enable='between(t,0,20)[vo]" video.mp4 --external-file=image.png
Обновленный способ (рекомендуется):
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.view endEditing:YES];
}
Это приведет к завершению редактирования всех подпредставлений и отставке первого респондента.
Другой способ (перечисление по всем текстовым представлениям):
Вот шаг за шагом:
Добавьте IBAction к вашему контроллеру представления, например - (IBAction) backgroundTouch: (id) sender
В действии backgroundTouch вам необходимо отправить сообщение resignFirstResponder всем текстовым полям по вашему мнению. Это прискорбно, но необходимо, поскольку в настоящее время нет способа получить объект, который в данный момент имеет статус FirstResponder. Это должно выглядеть примерно так:
- (IBAction)backgroundTouch:(id)sender {
[someTextBox resignFirstResponder];
[anotherTextBox resignFirstResponder];
}
Добавить элемент управления кнопки к виду, изменить его размер так, чтобы он охватывал всю видимую область (кроме строки состояния или любой вкладки или контроллеров навигации). Нажмите кнопку, затем перейдите в меню «Макет» и выберите «Отправить назад». Также установите кнопку "
есть руководство по этой проблеме (также касающееся цифровой клавиатуры без клавиши DONE) по здесь