第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

播放資源目錄中的音頻文件

播放資源目錄中的音頻文件

繁華開滿天機 2019-08-17 14:48:11
播放資源目錄中的音頻文件我有以下代碼:AssetFileDescriptor afd = getAssets().openFd("AudioFile.mp3");player = new MediaPlayer();player.setDataSource(afd.getFileDescriptor());player.prepare();player.start();問題是,當我運行這段代碼時,它會按字母順序開始播放資源目錄中的所有音頻文件,而不是只播放我請求的音頻文件。我究竟做錯了什么?有沒有更好的方法從資源目錄播放音頻文件?后續(xù)問題:將音頻文件保存在資源目錄中并將它們保存在res / raw目錄中是否有區(qū)別?除了他們沒有獲得ID,如果他們在資產(chǎn)目錄中的事實。如果我將音頻文件移動到res / raw文件夾,那么我有一個重用MediaPlayers 的問題,因為沒有id參數(shù)setDataSource()。我找不到處理這類問題的好指南。
查看完整描述

3 回答

?
飲歌長嘯

TA貢獻1951條經(jīng)驗 獲得超3個贊

player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());

如果您在資源目錄中只有一個文件,那么您的版本將起作用。資產(chǎn)目錄內(nèi)容實際上不是磁盤上的“真實文件”。所有這些都是一個接一個地組合在一起。因此,如果您沒有指定從哪里開始以及要讀取多少字節(jié),則播放器將讀到最后(即,將繼續(xù)播放assets目錄中的所有文件)


查看完整回答
反對 回復(fù) 2019-08-17
?
ITMISS

TA貢獻1871條經(jīng)驗 獲得超8個贊

這個功能會正常工作:)

// MediaPlayer m; /*assume, somewhere in the global scope...*/public void playBeep() {
    try {
        if (m.isPlaying()) {
            m.stop();
            m.release();
            m = new MediaPlayer();
        }

        AssetFileDescriptor descriptor = getAssets().openFd("beepbeep.mp3");
        m.setDataSource(descriptor.getFileDescriptor(), descriptor.getStartOffset(), descriptor.getLength());
        descriptor.close();

        m.prepare();
        m.setVolume(1f, 1f);
        m.setLooping(true);
        m.start();
    } catch (Exception e) {
        e.printStackTrace();
    }}


查看完整回答
反對 回復(fù) 2019-08-17
?
互換的青春

TA貢獻1797條經(jīng)驗 獲得超6個贊

這是我的靜態(tài)版本:

public static void playAssetSound(Context context, String soundFileName) {
    try {
        MediaPlayer mediaPlayer = new MediaPlayer();

        AssetFileDescriptor descriptor = context.getAssets().openFd(soundFileName);
        mediaPlayer.setDataSource(descriptor.getFileDescriptor(), descriptor.getStartOffset(), descriptor.getLength());
        descriptor.close();

        mediaPlayer.prepare();
        mediaPlayer.setVolume(1f, 1f);
        mediaPlayer.setLooping(false);
        mediaPlayer.start();
    } catch (Exception e) {
        e.printStackTrace();
    }}


查看完整回答
反對 回復(fù) 2019-08-17
  • 3 回答
  • 0 關(guān)注
  • 660 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號