Page 1 sur 1

Stream Audio (VLC) + Unity

Publié : 01 Mars 2013 12:43
par piranh4
Bonjour, j'ai lancé un stream sous VLC , qui fonctionne parfaitement malheureusement et c'est pour cela que je suis la ça ne fonctionne pas :

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class Stream_audio : MonoBehaviour {

	public string url_stream = "http://****:8080/stream.ogg";
	
	void Start () 
	{
		WWW stream_audio = new WWW(url_stream);
		AudioClip stream_audio_clip = stream_audio.GetAudioClip(false, true);
		audio.clip = stream_audio_clip;
	}
	
	void Update () 
	{
		if (!audio.isPlaying && audio.clip.isReadyToPlay)
		{
			audio.Play();
		}
		else
		{
			 Debug.Log("waiting - isplaying : " + audio.isPlaying + " isreadyToPlay : " + audio.clip.isReadyToPlay);
		}
	
	}
}
Quelqu'un aurait il dejà utilisé cette fonctionnalité, si oui pourriez vous m'aider.

Re: Stream Audio (VLC) + Unity

Publié : 01 Mars 2013 21:12
par ZJP
Bonjour, j'ai lancé un stream sous VLC , qui fonctionne parfaitement malheureusement et c'est pour cela que je suis la ça ne fonctionne pas :
Cela fonctionne ou pas?!

Re: Stream Audio (VLC) + Unity

Publié : 02 Mars 2013 00:10
par piranh4
Oula oui je me suis mal exprimé :shock: . Le stream VLC marche , le script non , pas d'erreur de compilation mais on entend rien. Désolé du cafouillage

Re: Stream Audio (VLC) + Unity

Publié : 02 Mars 2013 18:35
par ZJP
Nanh, j'avais compris. Je "faisais" mon modo chieur. :mrgreen:
J'ai cherché sans vraiment trouver de réponses satisfaisantes. On est carrément dans le "ça fonctionne/ça fonctionne pas" avec ce sujet. J'ai une solution possible, mais cela passe par l'usage d'une DLL avec Bass (solution super efficace essayée en streaming à l'époque sous BlitzBasic). Donc Win32/64 seulement. A voir.

JP

Edit :

Voici une solution avec la DLL Bass. Fonctionne sous Unity V3, V4, V5.

Code : Tout sélectionner

// Bass_Dll  (c) ZJP //
// Windows 32B >> Copy 'bass_2302.dll' in windows\system32 folder
// Windows 64B >> Copy 'bass_2302.dll' in windows\SysWOW64 folder
//
using UnityEngine;
using System;
using System.Collections;
using System.Runtime.InteropServices;

public class Bass_Dll_Stream : MonoBehaviour
{
	private int bass_stream = 0;
	[DllImport ("bass_2302.dll", EntryPoint="BASS_Init")]            private static extern void BASS_Init(int bass_device, int bass_freq, int bass_flag, int bass_win, int bass_clsid);
	[DllImport ("bass_2302.dll", EntryPoint="BASS_StreamCreateURL")] private static extern int  BASS_StreamCreateURL(string bass_url, int bass_offset, int bass_flag, int bass_proc, int bass_user);
	[DllImport ("bass_2302.dll", EntryPoint="BASS_ChannelPlay")]     private static extern void BASS_ChannelPlay(int bass_handle, int bass_restart);
	[DllImport ("bass_2302.dll", EntryPoint="BASS_Free")]            private static extern void BASS_Free();

	void Start ()
	{
		BASS_Init(-1,44100,0,0,0);
		// http://185.33.22.15:10108
		// http://185.33.22.15:10084
		// http://185.33.22.22:8680
		// http://185.33.22.15:8075
		// 
		bass_stream = BASS_StreamCreateURL("http://hi5.adagio.fm:80",0,4,0,0); // url du stream a écouter.
		BASS_ChannelPlay(bass_stream ,1);
	}
 
	void OnDisable()
	{
		BASS_Free();
	}
}

DLL en pièce jointe :

Re: Stream Audio (VLC) + Unity

Publié : 04 Mars 2013 11:24
par piranh4
Merci pour cette solution simple et efficace ! ;)

Re: Stream Audio (VLC) + Unity

Publié : 04 Mars 2013 15:10
par ZJP
A ton service.
J'étofferais le script en CS avec les autres fonctions de la DLL (Si je trouve le temps) :mrgreen:
Je démarrerai alors un nouveau sujet. ;)

Edit :
Finalement..... :D

Re: Stream Audio (VLC) + Unity

Publié : 25 Mars 2017 22:12
par ZJP
MAJ Lien DLL.