none
用WindowsMediaPlayer撥放, 有關路徑方面的敘述, 可以改為檔案串流的路徑嗎? RRS feed

  • 問題

  • 我的作業環境 : C#2008, window.form, 使用NFC, c# 撥放影片的工具是用他工具箱裡面的media player 來撥放 .

    NFC : 一台接收一台發送, 我的問題是在於 "發送端".

    目的 : 發送端 : 傳送圖片, 影片, 文字 (已經完成) , 接收端 :  都已完成接收,文字, 圖片, 也都如期顯示, 但是在於顯示影片,我無法顯示

    原因如下 :

    因為傳送端, 接收端, 是2個程式, 不是同一個,

    接收端 要撥放影片

    我是用C#裡的Windows Media Player 撥放, (或是還有其他方法撥放?)

    我撥放的檔案的方式的想法是 : 

    =======這邊是我從發送端接收的資料, 接收到資料後, 用FileStream 寫進map裡,

    ms.Write(map, 0, Counter); // 讀map 寫入 位元組, 範圍是從 0~Counter bytes

    ==========================

    這邊就要開始撥放 :

                        axWindowsMediaPlayer1.URL = ms.ToString();  // 問題就在這邊, 這邊應該要擺 "檔案名稱" 或 "路徑" , 不能夠像這樣擺放阿...
                        axWindowsMediaPlayer1.settings.autoStart = true;  // 自動逼放

    請問有什麼方法可以克服嘛 ?

    我有和 Bill 前輩 討論過, 他說關於AxWindowsMediaPlayer Object並沒有直接對stream類別處理的方法.

    還是說我有其他方式可以把影片展示出來 ?

    2010年6月19日 上午 02:49

解答

  • 檔案串流基本上要透過串流伺服器輸出才有可能。
    URL 印象中是 mms://....

    如果你想做出串流的能力,那你就得要實作一個串流伺服器機制才能做到,但這工程浩大,不是你一個人可以在有限的時間內完成的。


    以下為簽名檔,請勿對號入座:
    初學不是問題,但用不正確的態度來問問題,那就是很大的問題。
    請不要藉新手之名行小白之實,否則只會讓更多無辜的新手得不到幫助而已。
    如果不知道什麼是小白,請參閱:何謂小白
    • 已標示為解答 stanley316 2010年6月20日 上午 11:00
    2010年6月19日 上午 02:55
    版主
  • 這是AxWindowsMedia Player的關係, 和語言沒啥關係.

    基本上我想AxWindowsMedia Player內部也是用Stream, 只是它對外的介面沒有設計直接對Stream類別的接收處理.

    如果你要達成這種用法, 就像小朱說的, 你得要使用底層的方式去自己寫出一套串流處理的機制, 或是找得到此種功能的第三方元件.

    我查過一些文件, 要建立自己的串流處理機制, 大概是要對 DirectShow 與 Media Foundation 很熟悉, 不過這不是我的專長. 只能提供資料給你參考

    MSDN文件庫 (英文, 因為這部份沒有中文)

    [DirectShow ]

    [Microsoft Media Foundation ]

     

     


    以下是簽名檔, 請勿沒事對號入座
    MSDN 文件庫很重要
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    進步的人會找尋自己程式中的缺點,半桶水則把自己程式的錯誤推到不相干事物的身上
    • 已標示為解答 stanley316 2010年6月20日 上午 11:00
    2010年6月20日 上午 05:46
    版主

所有回覆

  • 檔案串流基本上要透過串流伺服器輸出才有可能。
    URL 印象中是 mms://....

    如果你想做出串流的能力,那你就得要實作一個串流伺服器機制才能做到,但這工程浩大,不是你一個人可以在有限的時間內完成的。


    以下為簽名檔,請勿對號入座:
    初學不是問題,但用不正確的態度來問問題,那就是很大的問題。
    請不要藉新手之名行小白之實,否則只會讓更多無辜的新手得不到幫助而已。
    如果不知道什麼是小白,請參閱:何謂小白
    • 已標示為解答 stanley316 2010年6月20日 上午 11:00
    2010年6月19日 上午 02:55
    版主
  • Hi,

    有在blog看到詢問,我直接在這邊回好了

    看完了上一篇問題

    說實話我還是不懂你的需求

    因為你的影片接到是放到FileStream

    FileStream一定是有個寫入的檔案

    去開那檔案位置就可以撥放了

    為何一定要針對FileStream去撥?

     

    除非您想要做到的是即時的撥放

    而非抓完全部再撥放

    才會有這樣的問題存在

    而且若是這樣

    可能FileStream也較不適用


    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2010年6月19日 上午 08:57
  • TO 蹂躝 :

    因為我的程式有分傳送端, 接收端 ,是2個不同的程式.

    "開起檔案" 的這個動作 的程式我是在發送端 做的

    接收端 是在做讀取的動作(就是從FileStream裡讀取),

    所以接收端不會有開啟檔案這個動作,

    這樣解釋OK?

    2010年6月19日 上午 09:06
  • 檔案串流基本上要透過串流伺服器輸出才有可能。
    URL 印象中是 mms: //....

    如果你想做出串流的能力,那你就得要實作一個串流伺服器機制才能做到,但這工程浩大,不是你一個人可以在有限的時間內完成的。


    我想要請問一下,是否是因為C#的 Windows Media Player 的模組沒有考慮到影片有可能是想要從檔案串流裡讀出來的呢?

    另外就是說,是C#才有這個問題嗎?

    還是說像用C++或是VB 就可以克服呢?

    2010年6月20日 上午 04:38
  • 這是AxWindowsMedia Player的關係, 和語言沒啥關係.

    基本上我想AxWindowsMedia Player內部也是用Stream, 只是它對外的介面沒有設計直接對Stream類別的接收處理.

    如果你要達成這種用法, 就像小朱說的, 你得要使用底層的方式去自己寫出一套串流處理的機制, 或是找得到此種功能的第三方元件.

    我查過一些文件, 要建立自己的串流處理機制, 大概是要對 DirectShow 與 Media Foundation 很熟悉, 不過這不是我的專長. 只能提供資料給你參考

    MSDN文件庫 (英文, 因為這部份沒有中文)

    [DirectShow ]

    [Microsoft Media Foundation ]

     

     


    以下是簽名檔, 請勿沒事對號入座
    MSDN 文件庫很重要
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    進步的人會找尋自己程式中的缺點,半桶水則把自己程式的錯誤推到不相干事物的身上
    • 已標示為解答 stanley316 2010年6月20日 上午 11:00
    2010年6月20日 上午 05:46
    版主
  • 謝謝大家~

    我稍微看過一下MSDN了, 這邊可能我還不太能駕馭吧!

    這邊特別謝謝Bill, 一直有耐心的幫住我.

    2010年6月20日 上午 10:57