顯示結果從 1 到 10 共計 12 條

查看主題

  1. #10
    註冊日期
    2007-07-16
    文章
    192
    Thanks
    2
    Thanked 2 Times in 2 Posts

    預設

    引用 作者: drunkenlife 查看文章
    Foobar或iTunes或Media player這些都稱為application software
    application是在OS之上跑,OS之下則是硬體,OS之中會插入硬體相應的driver
    OS也會給application一個介面用來與硬體溝通,這稱為API
    因此整個架構是

    application -> API -> OS kernel -> driver -> hardware

    另外會有個看起來像是application的介面--control panel,用來設定硬體,這當然也是透過driver
    當driver與硬體的設定為44.1KHz,而application傳給API的是88.2KHz時,
    OS裡便有個機制會做44.1->88.2的轉換


    理想上,若是driver/硬體/application的設定與資料都是同樣的sampling rate,那麼音樂傳遞的過程中,應該不會有任何誤差
    但,倘若用的是DirectShow這個由Windows XP就開始用的標準API,其中會做個挺荒謬的轉換,所有聲音資料都會被轉成48KHz後,再將各個appliation的資料混音,接著,再轉成driver/硬體的設定sampling rate
    這二次的轉換,就會損失一堆細節
    那轉換後混音的部份就稱為kmixer

    因此後來才弄出WASAPI與kernel streaming這二個API,就沒上述的問題
    但,這得要application能用這二個API,多半的application並沒有這能力
    所以才會大家都在用Foobar


    以上粗體字部分是Windows的麻煩,Mac OS X沒這問題
    這篇文章寫的很好,但是有一處需要討論如下
    "application -> API -> OS kernel -> driver -> hardware"
    個人的認知為
    application -> API -> device driver -> kernel -> firmware -> hardware

  2. The Following User Says Thank You to warwick For This Useful Post:


發文規則

  • 不可以發表新主題
  • 不可以發表回覆
  • 不可以上傳附件
  • 不可以編輯自己的文章
  •