Question

J'ai deux fichiers sonores:

  • Son A est un 18 secondes introduction destinée à être lues une fois
  • Son B est un circuit de bouclage de 1 minute

Je voudrais jouer son Une fois, puis une fois son A est fait, jouer immédiatement son B et garder en boucle son B jusqu'à ce que je le dis d'arrêter. Ce système est censé être en boucle la musique de la ville dans un RPG.

Je l'ai essayé de le faire dans le code en utilisant seulement Sonore, mais il y a un petit écart encore perceptible entre la fin de son A et le début de son B. Même si je mettais le code de suivi à regarder SoundEffectInstance.State Sound A dans la mise à jour () fonction, je n'ai pas été en mesure de commencer son B exactement lorsque son A se termine pour qu'il soit transparent.

Je préfère utiliser Sonore parce que je peux charger des fichiers WMA plutôt que d'être coincé avec WAVs dans XACT.

Était-ce utile?

La solution

Une option potentiellement seconde. J'imagine que l'écart que vous entendez est probablement parce que le second son doit être soit chargé en mémoire, ou initialisé, ou le flux ouvert (pas sûr de la mise en œuvre interne). Mais si tel est le cas, je me demande si vous pouvez faire quelque chose comme ceci:

  1. Charger les deux effets sonores (a et b)
  2. Begin effet sonore joue un
  3. commencer immédiatement son effet jouer B
  4. pause effet sonore B après une image
  5. lorsque l'effet acoustique se termine, redémarrez effet sonore A

Mon hypothèse est que, puisque l'effet sonore B est déjà initialisé, il peut démarrer plus rapidement, réduisant ainsi l'écart perçu. Aimerait entendre si vous avez la chance d'essayer, et si cela a fonctionné: -)

Autres conseils

Malheureusement, la simplicité dans l'API Sonore est payé par une réduction de la flexibilité. Ce type de programmation audio est ce que XACT excelle dans ... si vous avez besoin d'une composition complexe, alors vous voudrez probablement passer à enquêter sur XACT.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top