亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

單擊下一步播放新的音軌

單擊下一步播放新的音軌

瀟瀟雨雨 2021-04-30 15:16:48
我正在嘗試開發一種語言學習應用程序,該應用程序在單擊按鈕時播放對話框行(每次5-10秒)。因此,我為每個對話框創建了對話框行數組,即:currentAudioArray {“ line0”,“ line2”,“ line3”}它們是放置在res / raw文件夾中的音頻文件的名稱但是我無法按照自己的方式演奏它們。我正在使用MediaPlayer.create()方法,但似乎只需要直接鏈接到特定文件(即R.raw.mySoundfile)。如何使用諸如[i]循環到MediaPlayer.create()之類的數組來填充數組?還是有任何其他類或方法可以在單擊“下一步”按鈕時播放下一個音頻文件?到目前為止,我嘗試使用:mediaPlayer = MediaPlayer.create(Listen.this,currentAudioArray [0])); mediaPlayer.start();但這給了我“未解決的方法”錯誤,因為它不喜歡currentAudioArray [0]是字符串而不是URL。我也嘗試過:mediaPlayer.setDataSource(currentAudioArray [0])但這也會在到達mediaPlayer.prepare()時顯示箭頭。非常歡迎任何有關如何以陣列方式播放這些文件的建議或想法!
查看完整描述

2 回答

?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

好吧,我發現了我的問題!最初,我將音頻文件數組設置為字符串

String[] currentAudioArray {"line0", "line2", "line3"}。但是我應該將它們設置為int并添加R.raw路徑,如下所示:

int[] currentAudioArray {R.raw.line0, R.rawline2, R.raw.line3}

在這種情況下: mediaPlayer= MediaPlayer.create(Listen.this, currentAudioArray[i]))整數值沒有任何問題。

這樣就行了!希望它對別人有幫助!


查看完整回答
反對 回復 2021-05-19
?
烙印99

TA貢獻1829條經驗 獲得超13個贊

您需要記住一件事:

您正在所有軌道上使用相同的實例。所以每當你點擊“下一步”,你必須停止處置MediaPlayer當前播放。

如果遇到錯誤,請嘗試重新初始化MediaPlayer實例,Create()然后再次初始化:mp = MediaPlayer.create(this, R.raw.mySoundfile);而不是setDataSource方法

如果您需要循環遍歷“原始”文件夾,請檢查此問題: 如何從循環中的原始資源讀取許多文件?


查看完整回答
反對 回復 2021-05-19
  • 2 回答
  • 0 關注
  • 186 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號