【问题标题】:Random sound onclick button android assets随机声音onclick按钮android资产
【发布时间】:2013-05-17 20:31:13
【问题描述】:

我想在我的项目中播放 assets/ 文件夹中的随机声音。 那个代码有什么问题?请帮帮我

这是我的代码:

MediaPlayer player;
AssetFileDescriptor descriptor;
private String[] filelist;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);

    setContentView(R.layout.activity_main);
    player = new MediaPlayer();

    Button bTutorial1 = (Button) findViewById(R.id.tutorial1);
    AssetManager aMan = this.getAssets();
    try {
        filelist = aMan.list("mysounds/");

        // OR
        // filelist = aMan.list("/");
    } catch (IOException e1) {
        e1.printStackTrace();
        {
        }
        bTutorial1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Random randomGenerator = new Random();
                int randomInt = randomGenerator.nextInt(filelist.length);

                try {
                    String mediaFile = filelist[randomInt];
                    descriptor = getAssets().openFd(mediaFile);
                    player.setDataSource(descriptor.getFileDescriptor(),
                            descriptor.getStartOffset(),
                            descriptor.getLength());
                    descriptor.close();
                    player.prepare();
                    player.start();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

点击按钮后没有声音播放。帮我! 没有错误显示。

【问题讨论】:

  • 只是检查基本情况:您确定您的媒体音量已调高吗?您是否进行了调试以确保文件列表包含有效的文件名?
  • 是的。我的资产文件夹中有两个 .mp3 文件,我也尝试创建文件夹 /mysounds 并添加到那里。

标签: android button audio random assets


【解决方案1】:

试试这个 Mediaplayer 构造函数:

MediaPlayer player = MediaPlayer.create(Context context, Uri uri);
uri = Uri.parse("file:///android_asset/mysounds/music.mp3");

【讨论】:

  • 是的,但我想在点击时随机播放音乐
猜你喜欢
  • 2016-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-11
  • 1970-01-01
相关资源
最近更新 更多