De momento me ha gustado mucho como se mueve el cursor por la linea de tiempo, va muy fino...
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menúusing System;
using System.Windows.Forms;
using ScriptPortal.Vegas;
public class EntryPoint
{
Vegas myVegas = null;
Form dlog = new Form();
public void FromVegas(Vegas vegas)
{
myVegas = vegas;
AdjustPlaybackRate(0.95f); // Aplicar directamente el 95% al abrir la ventana
dlog.Close(); // Cerrar la ventana automáticamente
}
void AdjustPlaybackRate(float rate)
{
foreach (Track track in myVegas.Project.Tracks)
{
foreach (TrackEvent trackEvent in track.Events)
{
if (trackEvent.Selected)
{
// Ajustar tanto audio como video relacionados
SyncAndAdjustEvent(trackEvent, rate);
}
}
}
}
void SyncAndAdjustEvent(TrackEvent selectedEvent, float rate)
{
// Ajustar el evento seleccionado (audio o video)
AdjustEvent(selectedEvent, rate);
// Buscar el evento relacionado (audio o video)
foreach (Track track in myVegas.Project.Tracks)
{
foreach (TrackEvent trackEvent in track.Events)
{
// Si encontramos un evento relacionado con el seleccionado
if (trackEvent != selectedEvent && AreEventsLinked(selectedEvent, trackEvent))
{
// Ajustar el evento relacionado para que coincida
AdjustEvent(trackEvent, rate, selectedEvent.Length);
}
}
}
}
bool AreEventsLinked(TrackEvent event1, TrackEvent event2)
{
// Consideramos que los eventos están vinculados si comparten la misma posición de inicio
return event1.Start == event2.Start && event1.Length == event2.Length;
}
void AdjustEvent(TrackEvent trackEvent, float rate, Timecode syncedLength = null)
{
// Ajustar eventos de audio
if (trackEvent.Track.IsAudio())
{
trackEvent.AdjustPlaybackRate(rate, true); // Ajustar la tasa de reproducción del audio
if (syncedLength != null)
{
trackEvent.Length = syncedLength; // Sincronizar duración con el video
}
else
{
// Ajustar la duración del evento de audio
double newLengthInSeconds = trackEvent.Length.ToMilliseconds() / 1000.0 / rate;
trackEvent.Length = new Timecode(newLengthInSeconds * 1000);
}
}
// Ajustar eventos de video
if (trackEvent.Track.IsVideo())
{
VideoEvent videoEvent = trackEvent as VideoEvent;
if (videoEvent != null)
{
videoEvent.PlaybackRate = rate; // Ajustar la tasa de reproducción del video
if (syncedLength != null)
{
videoEvent.Length = syncedLength; // Sincronizar duración con el audio
}
else
{
// Ajustar la longitud del evento de video
double newLengthInSeconds = videoEvent.Length.ToMilliseconds() / 1000.0 / rate;
videoEvent.Length = new Timecode(newLengthInSeconds * 1000);
}
}
}
}
}
using System;
using System.Windows.Forms;
using ScriptPortal.Vegas;
public class EntryPoint
{
Vegas myVegas = null;
Form dlog = new Form();
public void FromVegas(Vegas vegas)
{
myVegas = vegas;
AdjustPlaybackRate(1.05f); // Aplicar directamente el 105% al abrir la ventana
dlog.Close(); // Cerrar la ventana automáticamente
}
void AdjustPlaybackRate(float rate)
{
foreach (Track track in myVegas.Project.Tracks)
{
foreach (TrackEvent trackEvent in track.Events)
{
if (trackEvent.Selected)
{
// Ajustar tanto audio como video relacionados
SyncAndAdjustEvent(trackEvent, rate);
}
}
}
}
void SyncAndAdjustEvent(TrackEvent selectedEvent, float rate)
{
// Ajustar el evento seleccionado (audio o video)
AdjustEvent(selectedEvent, rate);
// Buscar el evento relacionado (audio o video)
foreach (Track track in myVegas.Project.Tracks)
{
foreach (TrackEvent trackEvent in track.Events)
{
// Si encontramos un evento relacionado con el seleccionado
if (trackEvent != selectedEvent && AreEventsLinked(selectedEvent, trackEvent))
{
// Ajustar el evento relacionado para que coincida
AdjustEvent(trackEvent, rate, selectedEvent.Length);
}
}
}
}
bool AreEventsLinked(TrackEvent event1, TrackEvent event2)
{
// Consideramos que los eventos están vinculados si comparten la misma posición de inicio
return event1.Start == event2.Start && event1.Length == event2.Length;
}
void AdjustEvent(TrackEvent trackEvent, float rate, Timecode syncedLength = null)
{
// Ajustar eventos de audio
if (trackEvent.Track.IsAudio())
{
trackEvent.AdjustPlaybackRate(rate, true); // Ajustar la tasa de reproducción del audio
if (syncedLength != null)
{
trackEvent.Length = syncedLength; // Sincronizar duración con el video
}
else
{
// Ajustar la duración del evento de audio
double newLengthInSeconds = trackEvent.Length.ToMilliseconds() / 1000.0 / rate;
trackEvent.Length = new Timecode(newLengthInSeconds * 1000);
}
}
// Ajustar eventos de video
if (trackEvent.Track.IsVideo())
{
VideoEvent videoEvent = trackEvent as VideoEvent;
if (videoEvent != null)
{
videoEvent.PlaybackRate = rate; // Ajustar la tasa de reproducción del video
if (syncedLength != null)
{
videoEvent.Length = syncedLength; // Sincronizar duración con el audio
}
else
{
// Ajustar la longitud del evento de video
double newLengthInSeconds = videoEvent.Length.ToMilliseconds() / 1000.0 / rate;
videoEvent.Length = new Timecode(newLengthInSeconds * 1000);
}
}
}
}
}