Update your flash pluggin on debian .
----- Original Message ----- 
From: "Enric Mas Llauradó" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Monday, September 03, 2007 10:33 AM
Subject: [Red5] Smurf voice when record with Linux


> Hi, i've got a problem with my flash recorder.
>
> I've made a recorder with Flex using Red5.
>
> If I record something in Windows, the flv file is recorded and the quality 
> is good, but if I try to record it with Linux (Debian
> Sarge) the FLV file is created and recorded, but when I play it the voice 
> is so acute, like a Smurf.
>
> I can't find the problem, i try to record with diferent linux versions and 
> computers, but the problem persists. Somebody have
> any idea? Thanks.
>
>
>
> The MXML code:
>
>
> ---------------------------------------------------------------------------------------------------------------------------------
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"; 
> layout="absolute" applicationComplete="init()" width="323" height="160">
>
> <mx:Script>
>
> <![CDATA[
>            [Bindable]
>            private var labelString:String;
> import flash.media.*;
> import flash.net.*;
> import flash.events.*;
> import flash.utils.*;
> import flash.net.navigateToURL;
> import flash.external.*;
>
> NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;
> SharedObject.defaultObjectEncoding  = flash.net.ObjectEncoding.AMF0;
>
> private var client_nc:NetConnection;
> private var out_ns:NetStream;
> private var in_ns:NetStream;
>
> private var my_mic:Microphone;
> private var audio_pause:Boolean;
> private var rec_so:SharedObject;
>
> private var anyContent:Boolean;
>            private var audioDir:String;
>            private var red5Host:String;
>            private var red5Port:String;
>
>            public function updateInfo(time:uint):void {
>                 if (ExternalInterface.available) {
>                    ExternalInterface.call("updateInfo", time);
>                 }
>            }
>
>            public function setAudioFilename(audioFilename:String):void {
>                 if (ExternalInterface.available) {
>                    ExternalInterface.call("setAudioFilename", 
> audioFilename);
>                 }
>            }
>
>            public function checkBlankAudio():Boolean {
> if ((ExternalInterface.available) && (anyContent)) {
> return true;
> } else {
> return false;
> }
>            }
>
> public function init():void
> {
> ExternalInterface.addCallback("noAudio",checkBlankAudio);
> audioDir = Application.application.parameters.audioDir;
> red5Host = Application.application.parameters.red5Host;
> red5Port = Application.application.parameters.red5Port;
> anyContent = false;
> // Create a connection
> client_nc = new NetConnection();
>
> // Connect to the application
> client_nc.connect("rtmp://" + red5Host + ":" + red5Port + "/recording");
>
> // add listener for the netStatus events
> client_nc.addEventListener(NetStatusEvent.NET_STATUS, netStatus);
> client_nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, 
> netSecurityError);
>
> // Create a remote shared object
> rec_so = SharedObject.getRemote("recordings", client_nc.uri, false);
> // Connect to the shared object
> rec_so.connect(client_nc);
>
> audio_pause = false;
>      NetStream.prototype.onMetaData = function(obj){}
> }
>
> private function netStatus(event:NetStatusEvent):void {
> trace("netStatus: " + event);
> var info:Object = event.info;
> trace(info.code);
>
> switch(info.code)
> {
>             case "NetConnection.Connect.Success":
>             // Close and recreate streams
>             if (in_ns) in_ns.close();
>             if (out_ns) out_ns.close();
>             in_ns = new NetStream(client_nc);
>             out_ns = new NetStream(client_nc);
>             in_ns.addEventListener(NetStatusEvent.NET_STATUS, 
> inStreamState);
>
>             break;
>             case "NetConnection.Connect.Closed":
>             if (in_ns) in_ns.close();
>             if (out_ns) out_ns.close();
>             break;
>    }
>  }
>
> private  function inStreamState(event:NetStatusEvent):void{
> var info:Object = event.info;
>
> // NetStream.Pause.Notify
>
> //if ((info.code == "NetStream.Play.Stop") || (info.code == 
> "NetStream.Play.Start"))
> if (info.code == "NetStream.Play.Stop")
> //if (info.code == "NetStream.Buffer.Flush")
> {
> RecStop_btn.enabled = true;
> RecStop_btn.label = "Rec";
>
> PlayPause_btn.enabled = true;
> PlayPause_btn.label = "Play";
>
> audio_pause = false;
> }
> }
>
> private function netSecurityError(event:SecurityErrorEvent):void {
> trace("netSecurityError: " + event);
> }
>
> private function playAudio():void
> {
> if (audio_pause)
> {
> in_ns.resume();
> estat.text = "*Playing...";
> audio_pause = false;
> }
> else
> {
> // Play the recording
> estat.text = "Playing...";
> if (in_ns) in_ns.close();
> in_ns = new NetStream(client_nc);
>                in_ns.addEventListener(NetStatusEvent.NET_STATUS, 
> inStreamState);
> in_ns.play(rec_so.data.filename);
> estat.text = "Playing...";
> }
>
> // It's not possible recording or save while audio is playing
> PlayPause_btn.enabled = true;
> PlayPause_btn.label = "Pause";
>
> RecStop_btn.enabled = true;
> RecStop_btn.label = "Stop";
> }
>
> private function pauseAudio():void
> {
> //in_ns.togglePause();
> in_ns.pause();
> estat.text = "Paused";
> audio_pause = true;
>
> // It's possible recording or save while audio is paused
> RecStop_btn.enabled = true;
> RecStop_btn.label = "Rec";
>
> PlayPause_btn.enabled = true;
> PlayPause_btn.label = "Play";
> }
>
> private function recAudio():void
> {
> var d:Date = new Date();
> estat.text = "Recording..."
> anyContent = true;
>   // Start publishing the audio output as a recorded stream
> my_mic = Microphone.getMicrophone();
>           out_ns.attachAudio(my_mic);
>           var audioFilename:String = "audio-"+d.getTime().toString();
>      setAudioFilename(audioFilename);
> rec_so.data.filename = audioDir + "/" + audioFilename;
>
> // Publish the stream
> out_ns.publish(rec_so.data.filename, "record");
>
> // It's not possible playing audio while recording
> RecStop_btn.enabled = true;
> RecStop_btn.label = "Stop";
>
> PlayPause_btn.enabled = false;
> PlayPause_btn.label = "Play";
> }
>
> private function stopAudio():void
> {
>                updateInfo (out_ns.time);
> estat.text = "Stopped ";
>
>   // Close output stream
>           out_ns.close();
>
>           // bytes
>        // estat.text = "Stopped"
>
> // It's not possible playing audio while recording
> RecStop_btn.enabled = true;
> RecStop_btn.label = "Rec";
>
> PlayPause_btn.enabled = true;
> PlayPause_btn.label = "Play";
> }
>
> private function recStopAudio():void
> {
> if (RecStop_btn.label == "Rec") recAudio();
> else stopAudio();
> }
>
> private function playPauseAudio():void{
> estat.text = 'playPauseAudio' + PlayPause_btn.label;
> switch (PlayPause_btn.label)
> {
> case "Play" : playAudio(); break;
> case "Pause" : pauseAudio(); break;
> }
> }
>
> ]]>
> </mx:Script>
>
> <mx:Panel x="0" y="0" width="323" height="160" layout="absolute" 
> title="Reproductor">
> <mx:Button x="10" y="83" label="Rec" click="recStopAudio();" 
> id="RecStop_btn" width="65" fillColors="[#ca0000, #ffffff]"/>
> <mx:Button x="82" y="83" label="Play" click="playPauseAudio();" 
> id="PlayPause_btn" width="65" fillColors="[#008080, #ffffff]"/>
> <mx:Label x="28" y="23" text="Estat:" width="47" fontWeight="bold" 
> fontStyle="italic"/>
> <mx:Label x="75.5" y="23" id="estat" width="152"/>
> <mx:Image x="259" y="4" width="37" height="36" alpha="1.0">
> <mx:source>woices_i.png</mx:source>
> </mx:Image>
> <mx:Label x="28" y="43" text="NetStream:" width="73" fontWeight="bold" 
> fontStyle="italic"/>
> <mx:Label x="99" y="43" id="notify" width="152"/>
> </mx:Panel>
>
> </mx:Application>
>
> ---------------------------------------------------------------------------------------------------------------------------------
>
>
> _______________________________________________
> Red5 mailing list
> [email protected]
> http://osflash.org/mailman/listinfo/red5_osflash.org 


_______________________________________________
Red5 mailing list
[email protected]
http://osflash.org/mailman/listinfo/red5_osflash.org

Reply via email to