我想在我的項目中使用Exoplayer(而不是Android的MediaPlayer)。但是,我有一個問題:獲取當前音頻會話的ID。使用傳統的MediaPlayer,通過調用getAudioSessionId很容易,但Exoplayer沒有任何相應的方法。任何人都幫助我?我如何從Exoplayer獲得一個audiosessionId?
1
A
回答
1
import com.google.android.exoplayer.util.PlayerControl;
通過傳遞您的Exoplayer實例來實例化PlayerControl對象。並調用getAudioSessionId。
PlayerControl playerControl=new PlayerControl(Exoplayer.instance);
int audioSessionId=playerControl.getAudioSessionId();
我想這就是你想要的。
1
這裏是代碼片段,我用來獲取音頻會話ID -
FrameworkSampleSource sampleSource = new FrameworkSampleSource(getApplicationContext(), builtUri, null);
MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource, MediaCodecSelector.DEFAULT){
@Override
protected void onAudioSessionId(int audioSessionId) {
// do whatever u want to do with id.
}
};
exoPlayer.prepare(audioRenderer);
exoPlayer.setPlayWhenReady(true);
1
由於ExoPlayer2 MediaCodecAudioTrackRenderer
和PlayerControl
不能再用於獲取AudioSessionId。相反,你應該在你的exoPlayer實例上設置一個AudioRendererEventListener
。
exoPlayer.setAudioDebugListener(new AudioRendererEventListener(){
@Override
public void onAudioEnabled(DecoderCounters counters) {
}
@Override
public void onAudioSessionId(int audioSessionId) {
//TODO Do something with your AudioSessionID here
}
@Override
public void onAudioDecoderInitialized(String decoderName, long initializedTimestampMs, long initializationDurationMs) {
}
@Override
public void onAudioInputFormatChanged(Format format) {
}
@Override
public void onAudioTrackUnderrun(int bufferSize, long bufferSizeMs, long elapsedSinceLastFeedMs) {
}
@Override
public void onAudioDisabled(DecoderCounters counters) {
}
});
相關問題
- 1. 我如何獲得一個NSManagedObjectID從
- 2. 我如何獲得從一個子對象到另一個子
- 3. 如何獲得一天從一個DateTime
- 4. 我如何獲得一個OBJ標籤
- 5. 我如何獲得rowposition一個選擇
- 6. 如何使用ExoPlayer獲得緩衝百分比更新?
- 7. 如何獲得本地視頻Uri ExoPlayer 2.x
- 8. 我如何獲得一個變量參數從一個方法到另一個
- 9. 我如何獲得Scanner.nextInt()來獲得下一個int?
- 10. 如何從我的數據庫中獲得一個隨機rowId?
- 11. 我如何從一個oracle序列通過NHibernate獲得NextVal
- 12. 我如何獲得一個TextView當屏幕從畫像的iOS
- 13. 我如何從nvarchar獲得一個數字
- 14. 我如何獲得價值從一個數組的java
- 15. 我如何獲得一個名單的唯一一個用戶
- 16. 如何獲得一個表
- 17. 如何獲得一個div
- 18. 如何獲得一個LINQ
- 19. 如何獲得一個TypeCode
- 20. 如何獲得一個cookie
- 21. 如何獲得一個NSArray
- 22. 如何旋轉ExoPlayer
- 23. 我如何在Exoplayer 2中播放.ts
- 24. 我如何獲得下一個ID在一個表中的Rails
- 25. 我如何獲得一個USEMAP一個Firefox XUL文件
- 26. django我如何混合一個order_by和獲得一個listview url?
- 27. 得到緩衝數據exoplayer
- 28. 如何從一個iframe父頁面獲得一個類的值
- 29. 如何從一個簡短的URL獲得一個長的URL
- 30. 你如何從Angular的一個元素中獲得一個類?
PlayerControl不支持這種方法,但我找到了解決方案。我使用Render類的AudioSessionId。 – hunghd
Oooo ....如果你可以爲其他訪問者發佈一個簡單的實現示例會更好 –