イントレ。
Tag for "SAPFx"
引き続きで、SAPFxの修正をいろいろと。
メディアリスト周りのデザインやパフォーマンス修正がほとんど。
リスト表示の重さの原因がグループ化にあるみたいだったので、グループ化をやめて他の方法を模索中。
Expander使って折りたたみとかしたかったんだけど、また今度。
とりあえず、サンプル品をハニーさんに渡したら割と好評価だったので、
現状のまま進めていこうかな。
WPF、使うの面倒だけど性能は偉大だ。
後はパフォーマンスがどうにかなればいいんだけどなぁ。
メディアリスト周りのデザインやパフォーマンス修正がほとんど。
リスト表示の重さの原因がグループ化にあるみたいだったので、グループ化をやめて他の方法を模索中。
Expander使って折りたたみとかしたかったんだけど、また今度。
とりあえず、サンプル品をハニーさんに渡したら割と好評価だったので、
現状のまま進めていこうかな。
WPF、使うの面倒だけど性能は偉大だ。
後はパフォーマンスがどうにかなればいいんだけどなぁ。
祝!Windows XP SP3リリース!
…かと思ったら、公開延期とかってどういうことですかっ!
→ Microsoft、Windows XP SP3配布を延期
…ということで、SAPFxのパフォーマンス周りを引き続き調査してるんですが、
ItemsControlのグループ化を有効にすると、ItemsSourceを設定したときにガクっと重くなるのを確認できました。
となると原因はCollectionViewかItemsControlの実装周り?
グループ化しなければそこそこ軽く処理出来るのですが、ツカえる機能なだけにちょっとキツいですねぇ…。
SAPFxに至っては検索性において重要な役割を持ってますし。
.NET3.5 SP1(?)を当てにしてても仕方ないし、
現状はグループ化を使わない方向でどうにか頑張ってみようか…。
TreeViewみたいに、グループ化の定義にHierarchicalDataTemplate使えればいいのに。
…かと思ったら、公開延期とかってどういうことですかっ!
→ Microsoft、Windows XP SP3配布を延期
…ということで、SAPFxのパフォーマンス周りを引き続き調査してるんですが、
ItemsControlのグループ化を有効にすると、ItemsSourceを設定したときにガクっと重くなるのを確認できました。
となると原因はCollectionViewかItemsControlの実装周り?
グループ化しなければそこそこ軽く処理出来るのですが、ツカえる機能なだけにちょっとキツいですねぇ…。
SAPFxに至っては検索性において重要な役割を持ってますし。
.NET3.5 SP1(?)を当てにしてても仕方ないし、
現状はグループ化を使わない方向でどうにか頑張ってみようか…。
TreeViewみたいに、グループ化の定義にHierarchicalDataTemplate使えればいいのに。
か、神が… 創造神が舞い降りたッ…!
ってな具合になんか順調にSAPFxのメディアリストのデザインが完成してました。
自分で言うのも何だが、これはいい感じ。
肝心の機能実装についてはパフォーマンス面の改善が進んでません。
どうも処理中に「引っかかる」感じがあるんだよなぁ…。
多分ListView+GridViewの仕業だと思うんですが。
いっそのこと、ListView使うのやめてItemsControlで自作しちゃおうか。
うん。やってみよう。
ってな具合になんか順調にSAPFxのメディアリストのデザインが完成してました。
自分で言うのも何だが、これはいい感じ。
肝心の機能実装についてはパフォーマンス面の改善が進んでません。
どうも処理中に「引っかかる」感じがあるんだよなぁ…。
多分ListView+GridViewの仕業だと思うんですが。
いっそのこと、ListView使うのやめてItemsControlで自作しちゃおうか。
うん。やってみよう。
忘れた頃にSAPFx作成。
今はUI部分を作っていてXAMLと戯れてます。
アニメーションも入って、随分といい感じになった予感。
UI操作に併せてデータクラスとプレイヤークラスに変更をする予定だけど、
WindowsFormsの頃と比べるとバインディングが使える分随分と楽出来てる気がする。
実行コストは高いけど、楽なのはいいことだ。
プレイヤーUIの部分が部分が出来たらいよいよプレイリスト部分の作成。
WPF一番の鬼門、ListView周りとの対決。
どうやって実装するかなぁ。
今はUI部分を作っていてXAMLと戯れてます。
アニメーションも入って、随分といい感じになった予感。
UI操作に併せてデータクラスとプレイヤークラスに変更をする予定だけど、
WindowsFormsの頃と比べるとバインディングが使える分随分と楽出来てる気がする。
実行コストは高いけど、楽なのはいいことだ。
プレイヤーUIの部分が部分が出来たらいよいよプレイリスト部分の作成。
WPF一番の鬼門、ListView周りとの対決。
どうやって実装するかなぁ。
SAPFxの動作が安定してきたと思ったので、
ハニーさんにお試ししてもらったら速攻エラーで涙目な愁です。
ひとつ目のエラー。
プレイリストのXMLを書き込む際に無効な文字列があって、.NET Framework内部で例外。
0x01なんて文字データどこから引っ張ってきてるんだよ…。orz
SAPFxでは、起動速度の高速化のために、
MP3ファイルから取得したタイトルやコメントデータをプレイリストに保存しているんですが、
その取得した(おそらくコメント)データに無効なデータがあるような気がします。
ふたつ目のエラー。
SAPFxを起動したら、サウンドカードのドライバソフトウェアが落ちた。
ハニーさんはCreative製のサウンドカードを使っているんですが、そのユーティリティソフトウェアが落ちたらしいです。
再現性がないから謎。
DirectShow関係が原因だと思うんですが、SAP本体からは何もエラーは出ず、
特に特殊なことをしているわけでもないと思うので、本当に謎。
VistaとXPでも挙動の違いがあったりもするのか…?
とりあえず、原因のわかっているXML出力関係をどうにかしたいんですが、
無効な文字かどうかチェックするメソッドとか無いかな。
改行文字などは自動で置き換えされているみたいなんだけどなぁ…。
文字列をCDATAで囲むなり、Base64でエンコードしちゃえば早いんだけど、
それだとXMLで出力する意味が半分ほど消えちゃうし。
さて、どうするか。
~追記~
XmlWriter.WriteString()の説明に答えが書いてありました。
無効な文字列をチェックしない方法でXmlTextWriterを作成すればいいみたいですね。
XMLの書き出しに.NET3.5のXElementを使っていたのですが、
XElement.Save()メソッドにもXmlWriterを渡せるオーバーロードメソッドがあるので、これでいけそうです。
ハニーさんにお試ししてもらったら速攻エラーで涙目な愁です。
ひとつ目のエラー。
プレイリストのXMLを書き込む際に無効な文字列があって、.NET Framework内部で例外。
0x01なんて文字データどこから引っ張ってきてるんだよ…。orz
SAPFxでは、起動速度の高速化のために、
MP3ファイルから取得したタイトルやコメントデータをプレイリストに保存しているんですが、
その取得した(おそらくコメント)データに無効なデータがあるような気がします。
ふたつ目のエラー。
SAPFxを起動したら、サウンドカードのドライバソフトウェアが落ちた。
ハニーさんはCreative製のサウンドカードを使っているんですが、そのユーティリティソフトウェアが落ちたらしいです。
再現性がないから謎。
DirectShow関係が原因だと思うんですが、SAP本体からは何もエラーは出ず、
特に特殊なことをしているわけでもないと思うので、本当に謎。
VistaとXPでも挙動の違いがあったりもするのか…?
とりあえず、原因のわかっているXML出力関係をどうにかしたいんですが、
無効な文字かどうかチェックするメソッドとか無いかな。
改行文字などは自動で置き換えされているみたいなんだけどなぁ…。
文字列をCDATAで囲むなり、Base64でエンコードしちゃえば早いんだけど、
それだとXMLで出力する意味が半分ほど消えちゃうし。
さて、どうするか。
~追記~
XmlWriter.WriteString()の説明に答えが書いてありました。
無効な文字列をチェックしない方法でXmlTextWriterを作成すればいいみたいですね。
XMLの書き出しに.NET3.5のXElementを使っていたのですが、
XElement.Save()メソッドにもXmlWriterを渡せるオーバーロードメソッドがあるので、これでいけそうです。
Utilities
- タグ
- カレンダー
- 最近の更新
- Adsense