Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.10.2010, 18:41
Life_Master вне форума Посмотреть профиль Отправить личное сообщение для Life_Master Найти все сообщения от Life_Master
  № 1  
Ответить с цитированием
Life_Master

Регистрация: Oct 2009
Сообщений: 55
По умолчанию Проблема с mp3 плееров

Сделал mp3 плеер по примеру. При компиляции Output выдает ошибку:
Код:
Error #2044: Необработанный IOErrorEvent:. text=Error #2032: Ошибка потока.
	at player_fla::MainTimeline/frame3()
	at flash.display::MovieClip/gotoAndStop()
	at player_fla::MainTimeline/XMLloaded()
	at flash.events::EventDispatcher/dispatchEventFunction()
	at flash.events::EventDispatcher/dispatchEvent()
	at flash.net::URLLoader/onComplete()
Error #2044: Необработанный IOErrorEvent:. text=Error #2032: Ошибка потока.
	at player_fla::MainTimeline/frame3()
вот скрипты по кадрам:

1 кадр
Код AS3:
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.net.URLRequest;
import flash.display.Loader;
import flash.events.Event;
 
stop();
 
var trackToPlay:String;
var pausePosition:int = 0;
var songURL:URLRequest;
var i:uint;
var myXML:XML = new XML();
var XML_URL:String = "xml/music.xml";
var myXMLURL:URLRequest = new URLRequest(XML_URL);
var myLoader:URLLoader = new URLLoader(myXMLURL);
 
myLoader.addEventListener("complete", XMLloaded);
 
function XMLloaded(e:Event):void
{
	myXML = XML(myLoader.data);
 
	var firstSong:String = myXML.Song.songTitle[0];
	var firstArtist:String = myXML.Song.songArtist[0];
 
	songURL = new URLRequest("music/" + firstSong + ".mp3");
	title_txt.text = "1."+firstArtist+" - "+firstSong;
 
	for each (var Song:XML in myXML..Song)
	{
		i++;
		var songTitle:String = Song.songTitle.toString();
		var songArtist:String = Song.songArtist.toString();
 
		playlist.lists.addItem({label:i+"."+songArtist+"-"+songTitle, songString:songTitle,Artist:songArtist, songNum:i});
	}
 
	var myArray = new Array(0,0);
	playlist.lists.selectedIndices = myArray;
	gotoAndStop(3);
 
}
2 кадр
Код AS3:
import flash.net.URLRequest;
 
songURL = new URLRequest("music/"+trackToPlay+".mp3");
3 кадр
Код AS3:
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundLoaderContext;
import flash.events.Event;
import flash.events.MouseEvent;
 
stop();
var snd:Sound = new Sound();
var channel:SoundChannel;
var context:SoundLoaderContext = new SoundLoaderContext(5000,true);
snd.load(songURL, context);
channel = snd.play(pausePosition);
playlist.lists.addEventListener(Event.CHANGE, itemClick);
function itemClick(e:Event):void
{
	channel.stop();
	title_txt.text = e.target.selectedItem.label;
	trackToPlay = e.target.selectedItem.songString;
	gotoAndPlay(2);
}
 
channel.addEventListener(Event.SOUND_COMPLETE, new_music);
function new_music(e:Event):void
{
	newTrack();
}
 
music_btn.stop_btn.addEventListener(MouseEvent.CLICK, stop_music);
function stop_music(e:Event):void
{
	channel.stop();
}
 
function newTrack():void
{
	if (playlist.lists.selectedItem.songNum == i)
	{
		channel.stop();
		var selectFirst = new Array(0,0);
		playlist.lists.selectedIndices = selectFirst;
		playlist.lists.scrollToIndex(0);
		trackToPlay = playlist.lists.selectedItem.songString;
		gotoAndPlay(2);
	}
	else
	{
		channel.stop();
		var sn:uint = playlist.lists.selectedItem.songNum;
		var selectNext = new Array(sn,sn);
		playlist.lists.selectedIndices = selectNext;
		playlist.lists.scrollToIndex(0);
		trackToPlay = playlist.lists.selectedItem.songString;
		gotoAndPlay(2);
	}
	pausePosition = 0;
}
не догоняю в чем проблема - музыка не проигрывается...

Старый 12.10.2010, 18:48
leofit вне форума Посмотреть профиль Отправить личное сообщение для leofit Найти все сообщения от leofit
  № 2  
Ответить с цитированием
leofit
 
Аватар для leofit

Регистрация: Dec 2009
Сообщений: 428
Код AS3:
songURL = new URLRequest("music/"+trackToPlay+".mp3");
1. А где лоадер? Вы не качаете музыку, а просто инициализируете ссылку на файл
2. Откуда могла бы быть гарантия, что музыка успела скачаться между вторым и третьим кадром?
__________________
Скажи мне кто твой друг и я скажу тебе кто твой друг

Старый 12.10.2010, 19:04
Life_Master вне форума Посмотреть профиль Отправить личное сообщение для Life_Master Найти все сообщения от Life_Master
  № 3  
Ответить с цитированием
Life_Master

Регистрация: Oct 2009
Сообщений: 55
добавил
Код AS3:
songURL = new URLRequest("music/"+trackToPlay+".mp3");
songLoader = new URLLoader(songURL);
и сразу ушел в аут с той же ошибкой аутпута

Старый 12.10.2010, 19:19
leofit вне форума Посмотреть профиль Отправить личное сообщение для leofit Найти все сообщения от leofit
  № 4  
Ответить с цитированием
leofit
 
Аватар для leofit

Регистрация: Dec 2009
Сообщений: 428
Сорри, не увидел в Вашем коде
Код AS3:
snd.load(songURL, context);
сейчас внимательнее посмотрю

Добавлено через 22 минуты
В общем у себя воспроизвел, работает без сбоев, вот ко моего третьего кадра

Код AS3:
 
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundLoaderContext;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.ProgressEvent;
 
var snd:Sound = new Sound();
var channel:SoundChannel;
var context:SoundLoaderContext = new SoundLoaderContext(5000,true);
snd.load(new URLRequest("/music/1.mp3"), context);
snd.addEventListener(Event.COMPLETE, completeListener);
snd.addEventListener(ProgressEvent.PROGRESS, progressHandler);
 
function completeListener(event:Event) {
	channel = snd.play();	
}
 
function progressHandler(event:ProgressEvent) {
            var loadTime:Number = event.bytesLoaded / event.bytesTotal;
            var LoadPercent:uint = Math.round(100 * loadTime);
 
            trace(	"Sound file's size in bytes: " + event.bytesTotal + "\n" 
                                 + "Bytes being loaded: " + event.bytesLoaded + "\n" 
                                 + "Percentage of sound file that is loaded " + LoadPercent + "%.\n"
				);
 
        }
 
 
stop();
Проверяйте пути к файлам, самое очевидное это сделать

Код AS3:
trace("music/"+trackToPlay+".mp3");
в третьем кадре
__________________
Скажи мне кто твой друг и я скажу тебе кто твой друг

Старый 12.10.2010, 19:58
Life_Master вне форума Посмотреть профиль Отправить личное сообщение для Life_Master Найти все сообщения от Life_Master
  № 5  
Ответить с цитированием
Life_Master

Регистрация: Oct 2009
Сообщений: 55
вы правы - trace показал только названия музыки, без исполнителя... значит будем бодаться... спс))

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:20.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 12:20.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.