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

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

Android-從字節(jié)播放mp3 []

Android-從字節(jié)播放mp3 []

PIPIONE 2019-12-20 10:31:48
我在byte []中有mp3文件(從服務(wù)下載),我想在設(shè)備上播放它,就像播放文件一樣:MediaPlayer mp = new MediaPlayer();mp.setDataSource(PATH_TO_FILE);mp.prepare();mp.start();但是我似乎找不到辦法。我不介意將文件保存到手機然后播放。如何播放文件,或者先下載再播放?
查看完整描述

3 回答

?
MM們

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

好的,謝謝大家,但是我需要從byte []播放mp3,因為我是從.NET webservice獲得的(不希望在服務(wù)器上存儲動態(tài)生成的mp3)。


最后-可以播放簡單的mp3的“陷阱” ...這里是任何需要它的人的代碼:


private MediaPlayer mediaPlayer = new MediaPlayer();

private void playMp3(byte[] mp3SoundByteArray) {

    try {

        // create temp file that will hold byte array

        File tempMp3 = File.createTempFile("kurchina", "mp3", getCacheDir());

        tempMp3.deleteOnExit();

        FileOutputStream fos = new FileOutputStream(tempMp3);

        fos.write(mp3SoundByteArray);

        fos.close();


        // resetting mediaplayer instance to evade problems

        mediaPlayer.reset();


        // In case you run into issues with threading consider new instance like:

        // MediaPlayer mediaPlayer = new MediaPlayer();                     


        // Tried passing path directly, but kept getting 

        // "Prepare failed.: status=0x1"

        // so using file descriptor instead

        FileInputStream fis = new FileInputStream(tempMp3);

        mediaPlayer.setDataSource(fis.getFD());


        mediaPlayer.prepare();

        mediaPlayer.start();

    } catch (IOException ex) {

        String s = ex.toString();

        ex.printStackTrace();

    }

}

編輯:我已經(jīng)在4年前寫了這個答案-顯然,從那時起,很多事情都發(fā)生了變化。請參閱Justin關(guān)于如何重用MediaPlayer實例的評論。另外,我不知道.deleteOnExit()現(xiàn)在是否適合您-隨時提出改進建議,以免臨時文件堆積。


查看完整回答
反對 回復 2019-12-20
?
拉風的咖菲貓

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

通過將MP3文件編碼為Base64(我已經(jīng)收到來自Restful API服務(wù)編碼的數(shù)據(jù)),然后創(chuàng)建URL對象,我找到了一個簡單的解決方案。我在Android 4.1中進行了測試。


public void PlayAudio(String base64EncodedString){

        try

        {

            String url = "data:audio/mp3;base64,"+base64EncodedString; 

            MediaPlayer mediaPlayer = new MediaPlayer();

            mediaPlayer.setDataSource(url);

            mediaPlayer.prepare();

            mediaPlayer.start();

        }

        catch(Exception ex){

            System.out.print(ex.getMessage());

        }

    }


查看完整回答
反對 回復 2019-12-20
  • 3 回答
  • 0 關(guān)注
  • 676 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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