Posted September 8, 201312 yr Hi, I'm a bit new to modding and I'm trying to play Music mp3 externally(using a different API). I click an item ingame, the song starts to play nicely, but the Minecraft stops responding. I think using threads is the thing I need, but I don't know if it works with Minecraft like that. Thanks, Talckrer
September 8, 201312 yr Author I'm actually trying to make a folder in the /mods directory, where you can put any music you want and it creates a music disc ingame for every track. I have used .oggs and Minecrafts own sound system(it works), but it reads only from inside the mod zip(assets folder) and I like mp3s more. But if there's a way to play .oggs elsewhere than assets folder, I would be greatful for that. I'm using the libary down below for playing mp3s(works): http://www.javazoom.net/javalayer/docs/docs1.0/index.html And here's my code for using the Player class in the library: package Core.client.sounds; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import java.util.ArrayList; import javazoom.jl.decoder.JavaLayerException; import javazoom.jl.player.Player; import net.minecraft.client.Minecraft; import Core.ModBFU.BlocksForUse; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.Side; public class Sounds implements Runnable{ static ArrayList fileNames = new ArrayList(); public static ArrayList getList(){ return fileNames; } public static String getNameAt(int index){ return (String)fileNames.get(index); } public static void addName(String name){ fileNames.add(name); } public static Player player; public void playRecord(int index, double x, double y, double z){ if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT && Minecraft.getMinecraft().gameSettings.soundVolume != 0.0F){ try{ String Path = BlocksForUse.newPath; File file = new File(Path + Path.charAt(2)/* the '\' character*/ + "Music" + Path.charAt(2) + getNameAt(index)); if (file.exists()){ try { InputStream stream = (InputStream)new FileInputStream(file);//the mp3 file javazoom.jl.player.Player player = new Player(stream); this.player = player; System.out.println("Made new player with file: " + file.getName()); run(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (JavaLayerException e) { e.printStackTrace(); } } }finally{ } } } @Override public void run() { try { player.play(); } catch (JavaLayerException e) { e.printStackTrace(); } } } Thanks in advance, Talckrer
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.