- Home /
how to play a mp3 audio file in unity ?
Here is my code that will play only wav audio file...
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor;
public class Mp : MonoBehaviour { string path; string extension; public GameObject musicAnalysis; string songName; float length; AudioSource song;
// Use this for initialization
void Start()
{
song = musicAnalysis.GetComponent<AudioSource>();
}
// Update is called once per frame
void Update()
{
if (song.isPlaying != true)
{
song.Play();
}
}
public void FileSelect()
{
//Open windows Exploer
path = EditorUtility.OpenFilePanel("Select a Song", "", "");
print(path);
//Take the end of the path and save it to another string
extension = path.Substring(path.IndexOf('.') + 1);
print(extension);
//Check if the user has select the correct file
if (extension == "mp3" || extension == "wav" || extension == "ogg")
{
//if correct file process file
print("You have selected the correct file type congrats");
LoadSong();
print("Song Name: " + songName);
print("Song Length: " + length);
}
//if the user selects the wrong file type
else
{
//pop up box that tells the user that they have selected the wrong file
EditorUtility.DisplayDialog("Error", "Incorrect File Type Please select another", "Ok");
////Open windows Exploer
path = EditorUtility.OpenFilePanel("Select a Song", "", "");
}
}
void LoadSong()
{
WWW www = new WWW("file:///" + path);
song.clip = www.GetAudioClip();
songName = www.GetAudioClip().name;
length = www.GetAudioClip().length;
while (!www.isDone)
{
print("Processing File" + path);
}
if (www.isDone == true)
{
print("Song has been processed");
song.Play();
}
}
}
I have one more script that will play wav audio files but still i am unable to play mp3 in unity(in pc).
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEditor; using System.IO;
public class OpenFile : $$anonymous$$onoBehaviour { public AudioSource audios; public Text Current$$anonymous$$usicTrackName; string SongName; public GameObject Btn_Open;
public void Start()
{
}
public void OpenFiles()
{
//Debug.Log(Application.dataPath);
string path = EditorUtility.OpenFilePanel("Select a file", "", "wav");
if (path.Length != 0)
{
if(path.Contains(".wav"))
{
StartCoroutine(PlayAudio(path));
}
else
{
EditorUtility.DisplayDialog("Error","Please select a valid file.","O$$anonymous$$");
OpenFiles();
}
}
}
IEnumerator PlayAudio(string path)
{
var www = new WWW ("file:///" + path);
AudioClip myAudioClip= www.GetAudioClip(false, false);//www.GetAudioClip();
while (!myAudioClip.isReadyToPlay)
yield return www;
audios.clip = myAudioClip;
// Debug.Log(path);
SongName = path;
// Debug.Log(SongName);
Current$$anonymous$$usicTrackName.text = path;
audios.Play ();
Btn_Open.SetActive(false);
}
}
Your answer
Follow this Question
Related Questions
Questions about using custom mp3's vs unity's automatic wav to mp3 compression 1 Answer
Export objects to a .3DS file at runtime 1 Answer
can't load music (wav and mp3 ) on android but the code works fine in editor and window build 0 Answers
.wav or .mp3 for audioclips? 2 Answers
Converting .wav to .mp3 0 Answers