Jump to content


Photo

Exibir O Bitrate


  • Faça o login para participar
2 replies to this topic

#1 bdoweb

bdoweb

    Super Veterano

  • Usuários
  • 1641 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 14/11/2006, 08:44

Olá pessoal,

minha dúvida é bem simples tenho um player de MP3 e gostaria de exibir o bitrate da musisca é possivel? se sim como?

valew pessoal ...
Quer ajuda seus amigo e ainda ganhar uma graninha?
Acesse agora mesmo http://yeapiz.com

#2 Micheeel

Micheeel

    ...

  • Usuários
  • 383 posts
  • Sexo:Não informado
  • Localidade:Jaraguá do Sul - SC

Posted 24/11/2006, 08:19

No Flash 8 (AS 1/2.0) não tem como ser feito a não ser que você pegue o tamanho do arquivo, tempo do som e tralalas e calcule manualmente o bitrate, acho que assim é possivel mas posso estar muito errado sobre isso :(

Já com AS3 e Flash 9 é possivel... aqui uma classe de um MP3 Player em Flash 9

package
{

import flash.events.Event;
import flash.events.EventDispatcher;
import flash.media.ID3Info;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundTransform;
import flash.net.URLRequest;
import flash.utils.Timer;

import mx.core.IMXMLObject;

[Event(name="close", type="flash.events.Event")]
[Event(name="complete", type="flash.events.Event")]
[Event(name="id3", type="flash.events.Event")]
[Event(name="ioError", type="flash.events.IOErrorEvent")]
[Event(name="open", type="flash.events.Event")]
[Event(name="play", type="flash.events.Event")]
[Event(name="progress", type="flash.events.ProgressEvent")]
[Event(name="soundComplete", type="flash.events.Event")]
[Event(name="soundProgress", type="flash.events.Event")]
[Event(name="stop", type="flash.events.Event")]

public class SoundPlayer extends EventDispatcher implements IMXMLObject
{
	private static const POSITION_UPDATE_INTERVAL:Number = 100;

	private var _initialized:Boolean;

	private var sound:Sound;
	private var soundChannel:SoundChannel;

	private var lastPosition:Number = 0;
	private var positionUpdateTimer:Timer;
	private var inPause:Boolean;

	public function SoundPlayer()
	{
	}

	private var _autoPlay:Boolean = true;
	public function get autoPlay():Boolean
	{
		return _autoPlay;
	}
	public function set autoPlay(value:Boolean):void
	{
		_autoPlay = value;
	}

	private var _autoLoad:Boolean = true;
	public function get autoLoad():Boolean
	{
		return _autoLoad;
	}
	public function set autoLoad(value:Boolean):void
	{
		_autoLoad = value;
	}

	[Bindable("close")]
	[Bindable("complete")]
	[Bindable("open")]
	[Bindable("progress")]
	public function get bytesLoaded():uint
	{
		return sound ? sound.bytesLoaded : 0;
	}

	[Bindable("close")]
	[Bindable("complete")]
	[Bindable("open")]
	[Bindable("progress")]
	public function get bytesTotal():int
	{
		return sound ? sound.bytesTotal : -1;
	}

	[Bindable("close")]
	[Bindable("id3")]
	public function get id3():ID3Info
	{
		return sound ? sound.id3 : null;
	}

	[Bindable("close")]
	[Bindable("complete")]
	[Bindable("open")]
	[Bindable("progress")]
	public function get isBuffering():Boolean
	{
		return sound ? sound.isBuffering : false;
	}

	[Bindable("play")]
	[Bindable("stop")]
	public function get isPlaying():Boolean
	{
		return soundChannel != null;
	}

	[Bindable("close")]
	[Bindable("complete")]
	public function get length():Number
	{
		return sound ? sound.length : NaN;
	}

	[Bindable("soundComplete")]
	[Bindable("soundProgress")]
	[Bindable("stop")]
	public function get position():Number
	{
		return soundChannel ? soundChannel.position : lastPosition;
	}
	public function set position(value:Number):void
	{
		if (position != value && isPlaying)
		{
			// seek to new position
			pause();
			lastPosition = value;
			play();
		}
	}

	private var _source:String;
	public function get source():String
	{
		return _source;
	}
	public function set source(value:String):void
	{
		if  (source != value)
		{
			_source = value;

			stop();
			close();

			if (autoPlay)
				play();
			else if (autoLoad)
				load();
		}
	}

	[Bindable("close")]
	[Bindable("open")]
	public function get url():String
	{
		return sound ? sound.url : null;
	}

	private var _volume:Number = 0.75;
	[Bindable("volumeChanged")]
	public function get volume():Number
	{
		return _volume;
	}
	public function set volume(value:Number):void
	{
		if (volume != value)
		{
			_volume = value;

			if (soundChannel)
				soundChannel.soundTransform = new SoundTransform(volume);

			dispatchEvent(new Event("volumeChanged"));
		}
	}

	public function initialized(document:Object, id:String):void
	{
		if (autoPlay)
			play();
		else if (autoLoad)
			load();

		_initialized = true;
	}

	public function load():void
	{
		if (!source)
			return;

		if (sound)
			// already loaded
			return;

		sound = new Sound();

		sound.addEventListener("complete", bounceEvent);
		sound.addEventListener("id3", bounceEvent);
		sound.addEventListener("ioError", bounceEvent);
		sound.addEventListener("open", bounceEvent);
		sound.addEventListener("progress", bounceEvent);

		sound.load(new URLRequest(source));
	}

	public function play():void
	{
		if (!source)
			return;

		if (soundChannel)
			// already playing
			return;

		load();

		soundChannel = sound.play(lastPosition);
		soundChannel.soundTransform = new SoundTransform(volume);

		positionUpdateTimer = new Timer(POSITION_UPDATE_INTERVAL);
		positionUpdateTimer.addEventListener("timer", updatePosition);
		positionUpdateTimer.start();

		dispatchEvent(new Event("play"));

		soundChannel.addEventListener("soundComplete", bounceEvent);
	}

	public function pause():void
	{
		inPause = true;
		stop();
		inPause = false;
	}

	public function stop():void
	{
		if (!soundChannel)
			return;

		soundChannel.stop();

		positionUpdateTimer.stop();
		positionUpdateTimer = null;

		if (!inPause)
			lastPosition = 0;

		soundChannel.removeEventListener("soundComplete", bounceEvent);
		soundChannel = null;

		dispatchEvent(new Event("stop"));
	}

	public function close():void
	{
		if (!sound)
			return;

		if (bytesLoaded < bytesTotal)
			sound.close();

		sound.removeEventListener("complete", bounceEvent);
		sound.removeEventListener("id3", bounceEvent);
		sound.removeEventListener("ioError", bounceEvent);
		sound.removeEventListener("open", bounceEvent);
		sound.removeEventListener("progress", bounceEvent);

		sound = null;

		dispatchEvent(new Event("close"));
	}

	private function bounceEvent(event:Event):void
	{
		var cloneEvent:Event = event.clone();
		dispatchEvent(cloneEvent);

		if (cloneEvent.type == "soundComplete")
			stop();
	}

	private function updatePosition(event:Event):void
	{
		if (!isNaN(position) && lastPosition != position)
		{
			lastPosition = position;

			dispatchEvent(new Event("soundProgress"));
		}
	}
}

}

[]'s
Michel

Posted Image

#3 bdoweb

bdoweb

    Super Veterano

  • Usuários
  • 1641 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 24/11/2006, 09:15

nossa cara que código assustador :P ...

Então de flash naum manjo muito essas paradas de classes ... mas eu posso importar essa classe neh ???

E pelo q vi dessa classe ela é um player neh ?
Quer ajuda seus amigo e ainda ganhar uma graninha?
Acesse agora mesmo http://yeapiz.com




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq