#android #audio #xamarin.forms #libvlc #libvlcsharp
#Android #Аудио #xamarin.forms #libvlc #libvlcsharp
Вопрос:
Есть ли какой-либо способ автоматически настроить audiodelay для установки в видеоплеере? Каждый раз исправлять это вручную действительно раздражает.
Exoplayer (родной проигрыватель Google, используемый в yt) использует метод getLatency, а не часть общедоступного SDK (https://github.com/google/ExoPlayer/blob/b5beb32618ac99adc58b537031a6f7c3dd761b9a/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioTrackPositionTracker.java#L172 ) поэтому я не могу воспроизвести это из-за того, что xamarin не включает этот метод в оболочку c #
var method = typeof(AudioTrack).GetMethod("getLatency"); // => null
(Пробовал материал из https://developer.amazon.com/docs/fire-tv/audio-video-synchronization.html#section1-2 )
Я также пытался найти собственные привязки аудиотрека Android в vlc, чтобы получить getTimestamp или getPlaybackHeadPosition, но безуспешно.
Есть ли какой-либо способ получить audiodelay, вызванный наушниками Bluetooth, в xamarin.forms на Android?
Есть ли какой-либо способ получить аудиотрек Android из libvlc (если он вообще используется)?
Комментарии:
1. какую привязку вы используете? Libvlcsharp? libvlcjni? exoplayer? Это не совсем ясно
2. Извините, я использую Libvlcsharp в проекте xamarin forms ( github.com/videolan/libvlcsharp/blob/3.x/src/LibVLCSharp . Формы / … )
3.
mediaplayer.SetAudioDelay
?4. @mfkl проблема не в SetAudioDelay, мне нужно получить текущую задержку звука, вызванную наушниками Bluetooth. Если я подключу наушники, мне нужно вручную установить задержку звука через SetAudioDelay на что-то вроде -400 мс, чтобы синхронизировать его. Exoplayer предлагает автоматическую систему задержки звука, но не vlc, я спрашиваю, как заставить ее автоматически синхронизироваться, как exoplayer
Ответ №1:
Вы не можете. LibVLC не предлагает определять задержку, вызванную внешним динамиком. Лучше всего синхронизировать его вручную SetAudioDelay
(или написать плагин libvlc с этой функцией).
РЕДАКТИРОВАТЬ: основной разработчик сообщает, что задержка обрабатывается на всех платформах, кроме Android. Возможно, вы захотите его протестировать. В любом случае это может произойти в будущей версии libvlc для Android.