Fernando Sena - Programação & Tecnologia Digital
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Procurar
 
 

Resultados por:
 


Rechercher Pesquisa avançada

Palavras-chaves

Últimos assuntos
» Wii ganha versão de 'Street Fighter II' para Mega Drive com modo on-line
Stream de Video com Flash Communication Server/Flash Media Server Icon_minitime1Qua 16 Nov - 16:14 por fernandosena

» Segurança e redes sem fio
Stream de Video com Flash Communication Server/Flash Media Server Icon_minitime1Qua 16 Nov - 16:11 por fernandosena

» Nokia lançará tablet com Windows 8 em junho de 2012, diz executivo
Stream de Video com Flash Communication Server/Flash Media Server Icon_minitime1Qua 16 Nov - 16:05 por fernandosena

» Empresa registra aumento de 472% no número de vírus para Android
Stream de Video com Flash Communication Server/Flash Media Server Icon_minitime1Qua 16 Nov - 16:03 por fernandosena

» YouTube investe US$ 100 milhões em vídeos
Stream de Video com Flash Communication Server/Flash Media Server Icon_minitime1Sex 7 Out - 8:34 por fernandosena

» Todos os títulos futuros da Microsoft devem trazer suporte para o Kinect
Stream de Video com Flash Communication Server/Flash Media Server Icon_minitime1Sex 7 Out - 8:25 por fernandosena

» Resident Evil 5 - PC
Stream de Video com Flash Communication Server/Flash Media Server Icon_minitime1Sex 7 Out - 8:22 por fernandosena

» Novo trailer de Assassin’s Creed Revelations é lançado
Stream de Video com Flash Communication Server/Flash Media Server Icon_minitime1Sex 7 Out - 8:12 por fernandosena

» Biostar apresenta nova placa-mãe que permite acesso remoto via smartphones
Stream de Video com Flash Communication Server/Flash Media Server Icon_minitime1Sex 7 Out - 8:08 por fernandosena

junho 2024
SegTerQuaQuiSexSábDom
     12
3456789
10111213141516
17181920212223
24252627282930

Calendário Calendário

Blog
Fórum grátis


Stream de Video com Flash Communication Server/Flash Media Server

Ir para baixo

Stream de Video com Flash Communication Server/Flash Media Server Empty Stream de Video com Flash Communication Server/Flash Media Server

Mensagem por fernandosena Sex 2 Set - 13:31

Introdução

Pré-Requisitos

Macromedia Flash 8, Flash Communication Server ou Flash Media Server.

Objetivo

Criar streaming de video usando o servidor Flash Communication Server ou Flash Media Server(Ainda não foi testado no Red5).

Conteúdo

Vamos salvar nossos videos em flv no servidor do FlashCom/Flash Media Server, para isso você terá que salvar os videos no diretorio streams ficaria da sua aplicação(caso não esteja criado, crie-o), no exemplo foi utilizado o nome de “video_stream”.

No filme do Flash usaremos um componente “Tree”, um “TextArea” so para acompanhar o status do stream. criados dinamicamente (os componentes devem estar na biblioteca do filme).
Usaremos um arquivo em xml para guardar o nome e o caminho das musicas, no entanto, você pode usar SharedObject Remote, Flash Remontig, bando de dados etc.

Primeiramente para exibir os videos precisaremos ou de um componente ou de um “embed Video”, vamos utilizar a segunda opção. Para criar um novo movie clip de video aperte F11 para abrir a biblioteca, depois insira um novo item na biblioteca (New Video) como na imagem abaixo, colocamos no stage e damos um nome de estância de “clip”:



Nosso arquivo playlist.xml está assim:

<node>
<node label=”Playlist”>
<node label=”Lindomar – O Sub-zero Brasileiro” isBranch=”true” link=”lindomar” />
<node label=”Romantismo Masculino” isBranch=”true” link=”Romantismo_Masculino” />
<node label=”Para sua Empresa” isBranch=”true” link=”TerryTate_Port_384Kbps” />
</node>
</node>

Bem simples, no atributo link deverá ficar o nome do arquivo, não é necessário colocar a extensão flv.
Faremos o Flash carregar o xml e alimentar o componente “Tree”, quando a musica for selecionada tocara automaticamente, colocaremos mais dois botões no palco, um para “stop” e outro apenas para pausar a musica. Tudo via Action Script, só precisaremos que os componentes que utilizaremos estejam na biblioteca do filme.
Criando os componentes dinamicamente:

var tree = _root.createClassObject(mx.controls.Tree, “tree”, 1, {_x:7, _y:18});
tree.setSize(173, 342);
var status = _root.createClassObject(mx.controls.TextArea, “status”, 2, {_x:7, _y:381});
status.setSize(524, 110);

Agora verificamos como anda a conexão com servidor FlashCom/Flash Media Server:

var client_nc = new NetConnection();
client_nc.onStatus = function(info) {
trace(“Level: “+info.level+” Code: “+info.code);
status.text += “Level: “+info.level+” Code: “+info.code+”\n”;
};

Vamos carregar o arquivo xml para o Flash e alimentar o componente “Tree”:

var myTreeDP:XML = new XML();
myTreeDP.ignoreWhite = true;
myTreeDP.load(“playlist.xml”);
myTreeDP.onLoad = function() {
tree.dataProvider = this.firstChild;
};

Criando um objeto ouvinte para atuar quando o componente for clicado selecionando a musica e enviando-a para a função doPlay.

var treeListener:Object = new Object();
treeListener.change = function(evt:Object) {
var sel:Object = evt.target.selectedItem.attributes;
doPlay(sel.link);
};
tree.addEventListener(“change”, treeListener);

A função doPlay será responsável pela execução do video escolhida via stream. A variavel “url” sera o endereço do servidor FlashCom/Flash Media Server.

var url:String = “rtmp:/video_stream”;//usado localmente
function doPlay(playFileName) {
//trace(playFileName);
_root.client_nc.connect(url);
http://_root.client_nc.connect(playFileName);
in_ns = new NetStream(_root.client_nc);
_root.clip.attachVideo(_root.in_ns);
_root.in_ns.onStatus = function(info) {
status.text += info.level+”\n”+info.code+”\n”;
status.vPosition = status.maxVPosition;
};
_root.in_ns.play(playFileName);
_root.in_ns.connect();
}

Segue o código completo:

var tree = _root.createClassObject(mx.controls.Tree, “tree”, 1, {_x:7, _y:18});
tree.setSize(173, 342);
var status = _root.createClassObject(mx.controls.TextArea, “status”, 2, {_x:7, _y:381});
status.setSize(524, 110);
var client_nc = new NetConnection();
client_nc.onStatus = function(info) {
trace(“Level: “+info.level+” Code: “+info.code);
status.text += “Level: “+info.level+” Code: “+info.code+”\n”;
};
var myTreeDP:XML = new XML();
myTreeDP.ignoreWhite = true;
myTreeDP.load(“playlist.xml”);
myTreeDP.onLoad = function() {
tree.dataProvider = this.firstChild;
};
var treeListener:Object = new Object();
treeListener.change = function(evt:Object) {
var sel:Object = evt.target.selectedItem.attributes;
doPlay(sel.link);
};
tree.addEventListener(“change”, treeListener);
function doPlay(playFileName) {
//trace(playFileName);
_root.client_nc.connect(url);
http://_root.client_nc.connect(playFileName);
in_ns = new NetStream(_root.client_nc);
_root.clip.attachVideo(_root.in_ns);
_root.in_ns.onStatus = function(info) {
status.text += info.level+”\n”+info.code+”\n”;
status.vPosition = status.maxVPosition;
};
_root.in_ns.play(playFileName);
_root.in_ns.connect();
}

Dê ctrl+enter para testar a aplicação
Veja a aplicaçao em funcionamento
fernandosena
fernandosena
Admin

Mensagens : 155
Data de inscrição : 01/09/2011
Idade : 59
Localização : Salvador-BA

http://www.wix.com/fernandopadre/padre

Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos