2013-07-10 76 views
6

我試圖以編程方式檢測音頻左/右平衡,並且似乎沒有獲取此設置的值的API。我能夠找到UIAccessibilityIsMonoAudioEnabled()方法來檢測用戶是否啓用了單聲道音頻,但是我找不到音頻平衡的等效功能。如何檢測音頻左/右平衡?

任何人都知道我該怎麼做?

P.S.進入設置>通用>輔助功能,然後向下滾動到「聽」來設置這些選項

+0

我是在我的理解是正確的,你需要的輸出從一個應用程序的音頻電平的數字表示? – Gapp

+0

左右聲道之間的平衡的數字表示是理想的,但布爾isBalanceCentered?價值也會起作用。 –

+0

我最近編寫了一個應用程序,顯示麥克風的平衡或應用程序內正在播放的特定文件,但是沒有完成監視一般電話輸出的操作。如果這能幫助你,我可以把它放在答案中。 – Gapp

回答

5

我敢肯定,這不是一個可以接受的答案,但是...

瀏覽後通過各種API我認爲我的結論是:不可能

沒有直接讀取該特定設置的API。也無法直接讀取值 - 因爲它存儲在應用程序沙箱之外。

我最好的建議是在Apples Bug Reporter提交功能請求。

+0

是的,我已經提交了一個雷達,直接在WWDC與蘋果音頻工程師交談,然後提交第二個雷達:)我發佈這個賞金是我們放棄並嘗試尋找其他解決方案之前的最後一招。 –

+0

不接受,但你確實贏得了贊! –

+0

我認爲缺乏閱讀這個值的能力的合理性是因爲你沒有想到要反擊它 - 因爲聽力援助可能會因爲他們需要而傾斜。 – Trenskow

1

我不確定,但看起來好像它可能有幫助。

struct AudioBalanceFade { 
    Float32     mLeftRightBalance; 
    Float32     mBackFrontFade; 
    UInt32     mType; 
    const AudioChannelLayout *mChannelLayout; 
}; 
typedef struct AudioBalanceFade AudioBalanceFade; 

Documentation (link)

- (float)peakPowerForChannel:(NSUInteger)channelNumber 
+1

peakPowerForChannel用於測量輸入,而不是輸出......所以這可能對我們沒有幫助。我將看看AudioBalanceFade,但乍看起來,它似乎與獲取錄製音頻文件的屬性(而不是音頻輸出)有關。 –