トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     airファイルでVideoErrorが取得できない
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
phiria
Åê¹ÆNo.39262
投稿日時: 2008-6-23 15:23
新米
居住地:
投稿: 9
使用環境:
windowsXP SP2
Flash CS3 Professional
IE6,IE7
FlashPlayer9,AIR1.1
airファイルでVideoErrorが取得できない
phiriaと申します。

現在、DVDに焼いたFLVファイルをローカルPCで再生する
airアプリケーションを開発しています。
(FLVPlaybackで再生を行います)

再生したいFLVがDVD上にない場合、
エラーメッセージを出したいと思って、
下記のようなコードを書いてみました。

//
//意図的に存在しないFLV名を設定
myFLVPlayback.source = "d:/test.flv";
//
//
try {
 myFLVPlayback.play();
} catch (e:VideoError) {
 if (e.code == VideoError.NO_CONNECTION ) {
  //
  //ここにエラー発生時の処理を記述。
  //とりあえずtraceでメッセージを出力。
  trace("NO_CONNECTION");
  this.stop();
 }
}

存在しないFLVをplayするのだから、catch以下の処理が実行されるのかと思ったら、されませんでした。
ちなみに同じコードを、FlashPlayer9形式で書きだしたら、
きちんとエラーをキャッチしてくれました。

airで書き出しを行う場合、
ビデオエラーを取得するには別の方法があるのでしょうか?
ご存知の方がおられましたら、教えていただけますでしょうか?

よろしくお願いいたします。

環境は下記のとおりです。
開発ツール:Flash CS3 Professional
airのバージョン:1.0
FLVを再生するPCのOS:Windows XP
ニノミヤ カズノリ
Åê¹ÆNo.39268
投稿日時: 2008-6-24 0:28
職人
居住地: 東京
投稿: 430
使用環境:
CS4
.4.11, .5.7
XP Pro(sp3)
Flash Player 10,0,22,87,
AIR 1.5.1,
IE 5.5 & 6 & 7 & 8,
Firefox 2.0.0.20 & 3.0.11 & 3.5,
Opera 9.64,
Safari 4,
Google Chrome 2.0.172.31,
Netscape 7.1
Re: airファイルでVideoErrorが取得できない
一応お聞きしますが、
air アプリケーション側には FLVPlayback 用のスキン(swf ファイル)は入っていますか?
phiria
Åê¹ÆNo.39275
投稿日時: 2008-6-24 13:14
新米
居住地:
投稿: 9
使用環境:
windowsXP SP2
Flash CS3 Professional
IE6,IE7
FlashPlayer9,AIR1.1
Re: airファイルでVideoErrorが取得できない
一応お聞きしますが、
air アプリケーション側には FLVPlayback 用のスキン(swf ファイル)は入っていますか?

FLVPlaybackのスキンは利用していません。
再生・停止などの処理は、
他にボタンを作って、そちらで処理を行っています。
ニノミヤ カズノリ
Åê¹ÆNo.39289
投稿日時: 2008-6-24 22:53
職人
居住地: 東京
投稿: 430
使用環境:
CS4
.4.11, .5.7
XP Pro(sp3)
Flash Player 10,0,22,87,
AIR 1.5.1,
IE 5.5 & 6 & 7 & 8,
Firefox 2.0.0.20 & 3.0.11 & 3.5,
Opera 9.64,
Safari 4,
Google Chrome 2.0.172.31,
Netscape 7.1
Re: airファイルでVideoErrorが取得できない
引用:
phiriaさんは書きました:
FLVPlaybackのスキンは利用していません。
再生・停止などの処理は、
他にボタンを作って、そちらで処理を行っています。

skinError で落ちているとか考えましたが、そう言う訳ではないですね。
ちなみにこちらの環境で存在しないソースを読み込もうとすると、正常に VideoError がスローされ、キャッチできます。

AIR のバージョンが上がってますので、一度そちらをアップグレードした後にテストしてみては如何でしょうか。

【追記】
今回私が行ったテストでは、タイムラインで source プロパティに値を代入し、
ボタンで play メソッドを実行する形にしています。
その際、VideoError はキャッチ出来ました。
ただ、source プロパティに値を代入直後に play メソッドを実行すると、
VideoError はスローされるのですが、キャッチが出来ませんでした。
play メソッドの実行を少し遅らせてあげれば、何故か VideoError がキャッチ出来ます。

よく分からないですね。
宇都宮正宗
Åê¹ÆNo.39290
投稿日時: 2008-6-25 1:32
新米
居住地:
投稿: 25
使用環境:
:Flash:5
6.0
2004
:Flash:8
:Flash:CS3
:Flash:CS4
:Flash:CS5
:Flash:CS6
:FlashCC
:FlashBuilder
:FlashDevelop
pro
:Win:Vista
:Win:7
:MacOS:X
Re: airファイルでVideoErrorが取得できない
かなり外していますが、投稿します。

僕の場合はご呈示頂いたコードで試したところ、AIR,FlashPlayer9ともに
存在しないflvをplay()した時点で同じようにエラーが発生しました。
(どっちもエラーをキャッチしませんでした)
ハテサテ??

なので僕も不思議に思う当初の問題に対して全く解決にはなっていないですが、
とにかくAIRで再生させるという目的であれば
ファイルが存在するかどうかを確かめてからplay()するという方法もあります。


import flash.filesystem.File;

var flvName:String = "file:///d:/test.flv";
var flv:File = new File(flvName);

//ファイルが存在してたら再生
if (flv.exists) {
	myFLVPlayback.source = flvName;
	myFLVPlayback.play();
} else {
	//ファイルがなかったらなんかあとで考える
}
phiria
Åê¹ÆNo.39296
投稿日時: 2008-6-25 14:21
新米
居住地:
投稿: 9
使用環境:
windowsXP SP2
Flash CS3 Professional
IE6,IE7
FlashPlayer9,AIR1.1
Re: airファイルでVideoErrorが取得できない
ニノミヤ カズノリ様
返信ありがとうございます。

引用:

skinError で落ちているとか考えましたが、そう言う訳ではないですね。
ちなみにこちらの環境で存在しないソースを読み込もうとすると、正常に VideoError がスローされ、キャッチできます。

AIR のバージョンが上がってますので、一度そちらをアップグレードした後にテストしてみては如何でしょうか。

【追記】
今回私が行ったテストでは、タイムラインで source プロパティに値を代入し、
ボタンで play メソッドを実行する形にしています。
その際、VideoError はキャッチ出来ました。
ただ、source プロパティに値を代入直後に play メソッドを実行すると、
VideoError はスローされるのですが、キャッチが出来ませんでした。
play メソッドの実行を少し遅らせてあげれば、何故か VideoError がキャッチ出来ます。

よく分からないですね。


AIRの最新バージョン(1.1)にアップグレードしてみましたが、
結果は変わりませんでした。

追記の情報ですが、私の方でも試してみました。
確かに、ボタンでplayを実行すると、VideoErrorがキャッチできました。
どうしてこうなるのか、気になるところです・・・。
phiria
Åê¹ÆNo.39297
投稿日時: 2008-6-25 14:26
新米
居住地:
投稿: 9
使用環境:
windowsXP SP2
Flash CS3 Professional
IE6,IE7
FlashPlayer9,AIR1.1
Re: airファイルでVideoErrorが取得できない
宇都宮正宗様
返信ありがとうございます。

引用:

masamuneさんは書きました:
かなり外していますが、投稿します。

僕の場合はご呈示頂いたコードで試したところ、AIR,FlashPlayer9ともに
存在しないflvをplay()した時点で同じようにエラーが発生しました。
(どっちもエラーをキャッチしませんでした)
ハテサテ??

なので僕も不思議に思う当初の問題に対して全く解決にはなっていないですが、
とにかくAIRで再生させるという目的であれば
ファイルが存在するかどうかを確かめてからplay()するという方法もあります。


try?catchのことしか頭にありませんでした。
こんな方法もあったとは!!
情報ありがとうございます。
phiria
Åê¹ÆNo.39299
投稿日時: 2008-6-25 14:45
新米
居住地:
投稿: 9
使用環境:
windowsXP SP2
Flash CS3 Professional
IE6,IE7
FlashPlayer9,AIR1.1
Re: airファイルでVideoErrorが取得できない
存在しないFLVを再生した時に、
エラー処理を走らせることができました!!

返信していただいた皆様に感謝したします。
大変、役に立ちました。
ありがとうございました。
ニノミヤ カズノリ
Åê¹ÆNo.39301
投稿日時: 2008-6-25 15:03
職人
居住地: 東京
投稿: 430
使用環境:
CS4
.4.11, .5.7
XP Pro(sp3)
Flash Player 10,0,22,87,
AIR 1.5.1,
IE 5.5 & 6 & 7 & 8,
Firefox 2.0.0.20 & 3.0.11 & 3.5,
Opera 9.64,
Safari 4,
Google Chrome 2.0.172.31,
Netscape 7.1
Re: airファイルでVideoErrorが取得できない
解決おめでとうございます

追記の時点で書いておけば良かったのですが、
私の環境で VideoError をキャッチ出来た方法を書いておきます。

//
//意図的に存在しないFLV名を設定
myFLVPlayback.source = "d:/test.flv";
//
//
setTimeout(function():void
{
	try {
		myFLVPlayback.play();
	} catch (e:VideoError) {
		if (e.code == VideoError.NO_CONNECTION ) {
			//
			//ここにエラー発生時の処理を記述。
			//とりあえずtraceでメッセージを出力。
			trace("NO_CONNECTION");
			//this.stop();
		}
	}
}, 0);
phiria
Åê¹ÆNo.39302
投稿日時: 2008-6-25 15:46
新米
居住地:
投稿: 9
使用環境:
windowsXP SP2
Flash CS3 Professional
IE6,IE7
FlashPlayer9,AIR1.1
Re: airファイルでVideoErrorが取得できない
ニノミヤ カズノリ様

参考情報を再びありがとうございます。


引用:

追記の時点で書いておけば良かったのですが、
私の環境で VideoError をキャッチ出来た方法を書いておきます。

//
//意図的に存在しないFLV名を設定
myFLVPlayback.source = "d:/test.flv";
//
//
setTimeout(function():void
{
	try {
		myFLVPlayback.play();
	} catch (e:VideoError) {
		if (e.code == VideoError.NO_CONNECTION ) {
			//
			//ここにエラー発生時の処理を記述。
			//とりあえずtraceでメッセージを出力。
			trace("NO_CONNECTION");
			//this.stop();
		}
	}
}, 0);


こちらも役立ててみようと思います。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops