Android:播放许多短媒体文件

Posted

技术标签:

【中文标题】Android:播放许多短媒体文件【英文标题】:Android: playing many short media files 【发布时间】:2012-12-14 01:18:19 【问题描述】:

我正在编写一个程序来播放大约 1000 个以“原始”格式存储的短媒体文件。我的程序很简单。每次单击按钮时,它都会播放一个新的媒体文件。媒体文件的名称是从数组列表中读取的,我正在使用 MediaPlayer

这是我点击按钮时的代码(只有一个按钮):

@Override
public void onClick(View arg0) 
    i++;
    String fileName=soundArray.get(i);
    int soundID=getResources().getIdentifier(fileName, "raw", getPackageName());
    if(soundID>0)
         MediaPlayer mySound=MediaPlayer.create(getApplicationContext(),soundID);
         mySound.start();
    

此代码在前两个或三个按钮单击时运行良好。之后,它就崩溃了。您认为我的代码有问题吗?我应该使用 SoundPool 吗?

【问题讨论】:

你的代码可能不完整,你应该修复你的代码,我认为它错过了循环控制:) 没有循环我们无法判断是否会崩溃。此时您的代码似乎很好 你们说的循环控制是什么意思? 【参考方案1】:

在启动媒体播放器之前使用 prepare()

mySound.prepare();

【讨论】:

播放1、2个声音还是崩溃 请粘贴您的 logcat 报告 D/androidRuntime(1841): Shutting down VM W/dalvikvm(1841): threadid=1: thread exiting with uncaught exception (group=0x4001e578) E/AndroidRuntime(1841): FATAL EXCEPTION: main E/AndroidRuntime(1841): java.lang.NullPointerException ...

以上是关于Android:播放许多短媒体文件的主要内容,如果未能解决你的问题,请参考以下文章

Android短视频滑动播放(一)

Android短视频滑动播放

NAudio:在保持声卡打开的同时播放许多音频文件

无法使用 MediaPlayer 对象在 Android 中播放许多音频文件

Android SoundPool 剪切声音文件短

iPhone短文件播放