Résolu [1.4.7] Probleme pour jouer un son (CD)
-
Salut !!
Cela fait plusieurs jours que je cherche sur google une solution à mon problème mais je ne trouve RIEN
J’ai essayer de faire mon propre CD donc jusque la tout fonctionne, sauf lors que l’on met le CD dans le jukebox rien ne se produit, je n’ai pourtant fait aucun faute ?
Je vous laisse voir le code source par vous-même :
- Dans le client :
Class TechClientProxy:
package modCrafttech.client; import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.common.MinecraftForge; import modCrafttech.common.TechCommonProxy; public class TechClientProxy extends TechCommonProxy { public static String BlockTextureHD = "/modCrafttech/client/textures/BlocksHD.png"; @Override public void registerTextures() { MinecraftForgeClient.preloadTexture(BlockTextureHD); this.registerEvent(); } private void registerEvent() { MinecraftForge.EVENT_BUS.register(new CustomSound()); } }
Class CustomSound
package modCrafttech.client; import java.io.File; import modCrafttech.common.ModCrafttech; import net.minecraft.client.Minecraft; import net.minecraftforge.client.event.sound.PlaySoundEffectEvent; import net.minecraftforge.client.event.sound.PlaySoundEvent; import net.minecraftforge.client.event.sound.PlayStreamingEvent; import net.minecraftforge.client.event.sound.PlayStreamingSourceEvent; import net.minecraftforge.client.event.sound.SoundLoadEvent; import net.minecraftforge.event.ForgeSubscribe; public class CustomSound { @ForgeSubscribe public void loadsound(SoundLoadEvent event) { event.manager.soundPoolSounds.addSound("record/CDtest.ogg", ModCrafttech.class.getResource("/modCrafttech/client/music/CDtest.ogg")); } @ForgeSubscribe public void playSoundEffecctEvent(PlaySoundEffectEvent event) { System.out.println("PlaySoundEffectEvent: "+event.name); } @ForgeSubscribe public void PlaySoundEvent(PlaySoundEvent event) { System.out.println("PlaySoundEvent: "+event.name); } @ForgeSubscribe public void playStreamingSourceEvent(PlayStreamingEvent event) { System.out.println("PlayStreamingEvent: "+event.name); if(event.name.equals("CDtest")) event.result = event.manager.soundPoolSounds.getRandomSoundFromSoundPool("record.CDtest"); } }
- Dans le common :
class ItemRecordCustom:
package modCrafttech.common; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import modCrafttech.client.TechClientProxy; import net.minecraft.item.ItemRecord; public class ItemRecordCustom extends ItemRecord { public ItemRecordCustom(int par1, String par2Str) { super(par1, par2Str); // TODO Auto-generated constructor stub } @SideOnly(Side.CLIENT) public String getRecordTitle() { return "CDtest - " + this.recordName; } @SideOnly(Side.CLIENT) public String getTextureFile() { return TechClientProxy.BlockTextureHD; } }
class ModCrafttech:
package modCrafttech.common; import net.minecraft.block.Block; import net.minecraft.block.BlockBrewingStand; import net.minecraft.block.BlockGlass; import net.minecraft.block.BlockHalfSlab; import net.minecraft.block.BlockIce; import net.minecraft.block.BlockSign; import net.minecraft.block.BlockStep; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemDoor; import net.minecraft.item.ItemRecord; import net.minecraft.item.ItemReed; import net.minecraft.item.ItemSign; import net.minecraft.tileentity.TileEntitySign; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.Init; import cpw.mods.fml.common.Mod.PostInit; import cpw.mods.fml.common.Mod.PreInit; import cpw.mods.fml.common.Mod.ServerStarting; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.event.FMLServerStartingEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; @Mod(modid = "Mod CrafTech", name = "Mod CrafTech", version = "2.5.0") @NetworkMod(clientSideRequired = true, serverSideRequired = false) public class ModCrafttech { @SidedProxy(clientSide = "modCrafttech.client.TechClientProxy", serverSide = "modCrafttech.common.TechCommonProxy") public static TechCommonProxy proxy; /**1**/ @PreInit public void preload(FMLPreInitializationEvent event) { } /**2**/ public static Item record_CDtest; @Init public void load(FMLInitializationEvent event) { proxy.registerTextures(); record_CDtest= new ItemRecordCustom(3000, "CDtest").setIconCoord(0, 0).setItemName("record"); } /**3**/ @PostInit public void postload(FMLPostInitializationEvent event) { } /**4**/ @ServerStarting public void serverStarting(FMLServerStartingEvent event) { } }
- Dans la class TechCommonProxy:
package modCrafttech.common; public class TechCommonProxy { public void registerTextures() { } }
Voila,je ne sais pas d’où le problème peut venir
Si vous pouvez m’aider ?
Merci d’avance !
Cordialement Sidney
-
-
Oui mais a me trouve une erreur a cette ligne de code :
event.manager.addStreaming("modtutoriel:cd.ogg");
Il faut que je mette le fichier mais je n’ai aucune idée de comment faire ?
-
event.manager.soundPoolSounds.addStreaming("record/CDtest.ogg", ModCrafttech.class.getResource("/modCrafttech/client/music/CDtest.ogg"));
Utilise ce code en 1.4.7. Le reste c’est la même chose.
-
Desolé mais le code que tu m’a passé ne fonctionne pas :
event.manager.soundPoolSounds.addStreaming("record/CDtest.ogg", ModCrafttech.class.getResource("/modCrafttech/client/music/CDtest.ogg"));
Il prend comme paramètre une URL.
Le seule que prend en compte l adresse du fichier est :event.manager.soundPoolSounds.addSound("record/CDtest.ogg", ModCrafttech.class.getResource("/modCrafttech/client/music/CDtest.ogg"));
Mais ça ne fonctionne pas non plus
-
Persone ?
-
Malheureusement non, je ne peux pas t’aider plus car la 1.4 est trop loin pour moi et de toute façon je n’es jamais touché au son en 1.4.
-
Ok ce n’est pas grave, merci quand même de vos reponce.
Je vais continuer a cherché -
Je viens d observer un résultat assez étrange car quand essaye de jouer un son via le clic droit avec un item le jeux crash
Sais tu d’ou sela pourrait venir ?Ps: desoler pour le double post
Cordialement Sidney
-
Envoie le rapport de crash.
-
Voila le rapporte d erreur sur eclipse :
2013-12-21 20:27:42 [INFO] [Mod CrafTech] Activating mod Mod CrafTech 2013-12-21 20:27:42 [INFO] [ForgeModLoader] Configured a dormant chunk cache size of 0 2013-12-21 20:27:43 [INFO] [STDOUT] Starting up SoundSystem… 2013-12-21 20:27:43 [INFO] [STDOUT] Initializing LWJGL OpenAL 2013-12-21 20:27:43 [INFO] [STDOUT] (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org) 2013-12-21 20:27:45 [INFO] [STDOUT] OpenAL initialized. 2013-12-21 20:27:46 [INFO] [ForgeModLoader] Forge Mod Loader has successfully loaded 4 mods 2013-12-21 20:27:54 [INFO] [STDOUT] Scanning folders… 2013-12-21 20:27:54 [INFO] [STDOUT] Total conversion count is 0 2013-12-21 20:27:55 [INFO] [ForgeModLoader] Loading dimension 0 (New World) (net.minecraft.server.integrated.IntegratedServer@39b75af4) 2013-12-21 20:27:55 [INFO] [ForgeModLoader] Loading dimension 1 (New World) (net.minecraft.server.integrated.IntegratedServer@39b75af4) 2013-12-21 20:27:55 [INFO] [ForgeModLoader] Loading dimension -1 (New World) (net.minecraft.server.integrated.IntegratedServer@39b75af4) 2013-12-21 20:28:29 [INFO] [STDOUT] Error in class 'CodecJOrbis' 2013-12-21 20:28:29 [INFO] [STDOUT] Ogg header not recognized in method 'readHeader'. 2013-12-21 20:28:29 [INFO] [STDOUT] Error in class 'CodecJOrbis' 2013-12-21 20:28:29 [INFO] [STDOUT] Error reading the header
-
L’erreur viens du codec Ogg, la c’est plus dur a regler.
-
Ha Et comment sa se fait que j ai ça ?
Cordialement Sidney -
En fait le problème est réglé ! Cela venez d’une erreur conversion de la musique de .mp3 en .ogg
Merci pour vos reponces!
Cordialement Sidney