基于silerlight for embedd 视频播放器的之一的问题
時間:10:38 2010-9-3
環境:
開發環境:VS2008 +XAML2CPP.EXE + SWE 2 + BLEND 2
運行環境:WINCE 6.0 R3
硬件加速: DirectX
背景:???
??? 現在要求使用SILVERLIGHT FOR EMBEDD來開發視頻播放器與音樂播放器,在PC上的SILVERLIGHT 其是有一個MediaElement控件,其是用于實現視頻與音樂的播放,但是在SILVERLIHGT FOR EMBEDD 其沒有此控件。所以只能自立更生了,使用DirectShow來開發。然后增加FFDSHOW來添加各種視頻的解碼器。
??? 之前在MFC當中使用DIECTSHOW開發多媒體播放器的時候,DirectShow其是需要一個WIN32控件的句柄(HWND)。現在在SILVERIGHT FOR EMBEDD的開發環境當中,其是怎么樣與DIRECTSHOW合作的呢。
??? 現在的想法這樣幾種:
??? 1. PAGE.XAML其解析成VISUAL HOST , 其提供了HWND,可以通過??? IXRVisualHost::GetContainerHWND() ,這樣此HWND 就可以用于DirectShow,應該是可以,但也沒有試,但應該也是最簡單,在V1.0版本當中,計劃采用此法。
??? 2. IXRWin32Control 其也是有HWND的??梢詫IRECTSHOW依附于此控件上。且此控件具有SWE內置控件的功能,如動畫。此方法用于V2.0版本當中。
??? 3. 在SILVERLIGHT FOR EMBEDD當中,其是允許創建多個VISUAL HOST 對象。可以將其中一個VISUAL HOST 用于DIRECTSHOW。暫還不知MS的SWE開發人員對于多VISUAL HOST 是怎么樣管理的。希望其是以類似父子窗口的形式進行管理。 此方法暫無使用計劃。
開發計劃:
STEP ONE:
??? 1. 使用BLEND 2創建UI
??? 2. 創建工程。
??? 3. 使用XAM2CPP.EXE 生成最基本的文件,且將此文件將添加到工程當中。
??? 4. 編寫空事件處理代碼。
??? 5. 運行。
STEP TWO:
??? 1. 使用MVC模式重組流程。
??? 2. 添加DIRECTSHOW 的相關文件。
??? 3.。
問題:
??? fatal error LNK1112: 模塊計算機類型“ARM”與目標計算機類型“X86”沖突???
解法:
??? 菜單欄:項目==> XXX屬性 ==> 鏈接器==>命令行->輸入:/MACHINE:ARM /MACHINE:THUMB
問題:
??? -2142830490
問題:
??? -2142830481
??? 去掉ListBox 所產生的錯誤-2142830487
??? -2142830479
??? -2142830487
??? APP.XAML 當中加載資源的錯誤-2142830489
通過排除法,確定最后不能解析成功的原因,其與Slide ,ListBox的自定義模板有關.
??????????? <Slider Margin="53,0,48,43"
??????????????????????? RenderTransformOrigin="0.507,0.556"
??????????????????????? Background="#00000000"
??????????????????????? Grid.Row="1"
???????????????????????? VerticalAlignment="Bottom"
???????????????????????? Height="54"
??????????????????????? x:Name="timelineSlider"
???????????????????????? Maximum="1"
???????????????????????? Minimum="0"
??????????????????????? ValueChanged="TimelineSlider_ValueChanged"
??????????????????????? IsDirectionReversed="False"
????????????????????????? Width="256"
????????????????? />
去IsDirectionReversed="False" 就可以解析成功 ,否則生產-2142830487? 錯誤提示
終于查找到了另一個出錯的原因如下數據綁定的XAML 語句,SILVERLIGHT FOR EMBEDD? 其不支持數據綁定,所以當XAML當中出現有關于數據綁定的語句,其不像事件綁定那樣過慮了,所以就會致使XAML RUNTIME 解析出錯。
??? <DataTemplate x:Key="DataTemplate1">
??????????? <Grid Width="166">
??????????? <StackPanel Height="20" Margin="0,0,-0.999,0"???????????????? VerticalAlignment="Top" Orientation="Horizontal">
??????????? <TextBlock Text="{Binding Path=SongName}" Width="55.667"? TextWrapping="Wrap" Height="20" HorizontalAlignment="Left" Foreground="{StaticResource BrushThumb}"/>
??????????? <TextBlock Text="{Binding Path=SongSinger}" TextWrapping="Wrap" Width="69.667" Height="20" HorizontalAlignment="Right" Margin="41,0,0,0" Foreground="{StaticResource BrushThumb}"/>
??????????? </StackPanel>
??????????? </Grid>
??????? </DataTemplate>
?
終于顯示了UI,接下是后臺邏輯的實現了
?
問題:
?
1. 中文顯示的問題沒有解決。
轉載于:https://www.cnblogs.com/pengxinglove/archive/2010/09/03/1817293.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的基于silerlight for embedd 视频播放器的之一的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《ASCE1885的信息安全》の使用Cr
- 下一篇: 美国人跨入中产行列的6个指标。