簡體   English   中英

從SD卡加載聲音時出現問題

[英]Problems with loading sounds from Sd-Card

我有一個應從SD卡加載聲音的應用程序,然后單擊按鈕播放它。 當我單擊按鈕時,我在LogCat中得到這些消息:無法創建外部文件目錄,SoundPool錯誤加載/sound1.mp3,示例0未就緒,這是我的代碼:

import java.io.File;

import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {
SoundPool sp;
int mSoundId;
int mStreamId = 0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
        String path = getFullFilePath(getApplicationContext(), "sound1.mp3");
        mSoundId = sp.load(path, 1);

    }
    private String getFullFilePath(Context context, String filename) {  
        File directory = context.getExternalFilesDir(null);
        File file = new File(directory, filename);
        if (!file.canRead()) {
            // error handling
        }
        return file.getAbsolutePath();  
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
    public void button1(View view){


        if (mStreamId != 0) {
            sp.stop(mStreamId);
        }
        mStreamId = sp.play(mSoundId, 1, 1, 1, 0, 1f);
    }
}

我的LogCat錯誤:

11-04 18:56:34.499: D/dalvikvm(6547): GC_EXTERNAL_ALLOC freed 46K, 51% free 2686K/5379K, external 0K/0K, paused 57ms
11-04 18:56:34.539: W/ApplicationContext(6547): Unable to create external files directory
11-04 18:58:02.129: E/SoundPool(6644): error loading /sound1.mp3

添加WRITE_EXTERNAL_STORAGE權限會出現以下錯誤:

11-04 19:58:01.729: E/SoundPool(8022): error loading /mnt/sdcard/Android/data/com.example.idea/files/sound1.mp3

出現此錯誤:

11-04 19:58:01.729: E/SoundPool(8022): error loading /mnt/sdcard/Android/data/com.example.idea/files/sound1.mp3

您說:

文件存在,並且在/ mnt / sdcard /文件夾中。 應用程序應在外部存儲中搜索sound1.mp3並將其加載(如果存在)。

但是, /mnt/sdcard/不是/mnt/sdcard/Android/data/com.example.idea/files/只需將您的sound1.mp3文件移動到應用程序默認的sdcard文件夾中,SoundPool將能夠加載它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM