Got wav music packs working! Just need to figure out the buffer size for the files now.
This commit is contained in:
parent
1bbf3f2503
commit
def22386c5
|
@ -127,6 +127,7 @@ namespace StardewSymphonyRemastered.Framework.Menus
|
||||||
{
|
{
|
||||||
var info=(KeyValuePair<string, MusicPack>)param[0];
|
var info=(KeyValuePair<string, MusicPack>)param[0];
|
||||||
StardewSymphony.ModMonitor.Log(info.ToString());
|
StardewSymphony.ModMonitor.Log(info.ToString());
|
||||||
|
StardewSymphony.musicManager.swapMusicPacks(info.Key);
|
||||||
StardewSymphony.musicManager.playRandomSongFromPack(info.Key);
|
StardewSymphony.musicManager.playRandomSongFromPack(info.Key);
|
||||||
//info.Value.playRandomSong();
|
//info.Value.playRandomSong();
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ namespace StardewSymphonyRemastered.Framework
|
||||||
this.pathToMusicPackIcon = PathToMusicPackIcon;
|
this.pathToMusicPackIcon = PathToMusicPackIcon;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
this.Icon = new Texture2DExtended(StardewSymphony.ModHelper, this.pathToMusicPackIcon);
|
this.Icon = new Texture2DExtended(StardewSymphony.ModHelper, this.pathToMusicPackIcon+".png");
|
||||||
}
|
}
|
||||||
catch(Exception err)
|
catch(Exception err)
|
||||||
{
|
{
|
||||||
|
@ -59,6 +59,15 @@ namespace StardewSymphonyRemastered.Framework
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static MusicPackMetaData readFromJson(string path)
|
public static MusicPackMetaData readFromJson(string path)
|
||||||
{
|
{
|
||||||
|
var meta=StardewSymphony.ModHelper.ReadJsonFile<MusicPackMetaData>(path);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
meta.Icon = new Texture2DExtended(StardewSymphony.ModHelper, meta.pathToMusicPackIcon + ".png");
|
||||||
|
}
|
||||||
|
catch(Exception err)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
return StardewSymphony.ModHelper.ReadJsonFile<MusicPackMetaData>(path);
|
return StardewSymphony.ModHelper.ReadJsonFile<MusicPackMetaData>(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -112,7 +112,7 @@ namespace StardewSymphonyRemastered.Framework
|
||||||
byteArray = reader.ReadBytes(dataSize);
|
byteArray = reader.ReadBytes(dataSize);
|
||||||
|
|
||||||
dynamicSound = new DynamicSoundEffectInstance(sampleRate, (AudioChannels)channels);
|
dynamicSound = new DynamicSoundEffectInstance(sampleRate, (AudioChannels)channels);
|
||||||
count = dynamicSound.GetSampleSizeInBytes(TimeSpan.FromMilliseconds(100));
|
count = dynamicSound.GetSampleSizeInBytes(TimeSpan.FromMilliseconds(10000));
|
||||||
|
|
||||||
dynamicSound.BufferNeeded += new EventHandler<EventArgs>(DynamicSound_BufferNeeded);
|
dynamicSound.BufferNeeded += new EventHandler<EventArgs>(DynamicSound_BufferNeeded);
|
||||||
this.currentSong = new Song(p);
|
this.currentSong = new Song(p);
|
||||||
|
@ -120,8 +120,9 @@ namespace StardewSymphonyRemastered.Framework
|
||||||
|
|
||||||
void DynamicSound_BufferNeeded(object sender, EventArgs e)
|
void DynamicSound_BufferNeeded(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
dynamicSound.SubmitBuffer(byteArray, position, count / 2);
|
dynamicSound.SubmitBuffer(byteArray, position, count);
|
||||||
dynamicSound.SubmitBuffer(byteArray, position + count / 2, count / 2);
|
//dynamicSound.SubmitBuffer(byteArray);
|
||||||
|
//dynamicSound.SubmitBuffer(byteArray, position + count / 2, count / 2);
|
||||||
|
|
||||||
position += count;
|
position += count;
|
||||||
if (position + count > byteArray.Length)
|
if (position + count > byteArray.Length)
|
||||||
|
@ -197,11 +198,17 @@ namespace StardewSymphonyRemastered.Framework
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public override void stopSong()
|
public override void stopSong()
|
||||||
{
|
{
|
||||||
|
if (Game1.currentSong != null) Game1.currentSong.Stop(AudioStopOptions.Immediate);
|
||||||
|
if (this.currentSong == null) return;
|
||||||
if (dynamicSound != null)
|
if (dynamicSound != null)
|
||||||
{
|
{
|
||||||
dynamicSound.Stop();
|
dynamicSound.Stop(true);
|
||||||
|
dynamicSound.BufferNeeded -= new EventHandler<EventArgs>(DynamicSound_BufferNeeded);
|
||||||
dynamicSound = null;
|
dynamicSound = null;
|
||||||
this.currentSong = null;
|
this.currentSong = null;
|
||||||
|
position = 0;
|
||||||
|
count = 0;
|
||||||
|
byteArray = new byte[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue