正如标题所暗示的那样,当点击一个按钮时,我希望播放一个小的声音片段 - 非常基本。但是,当我第一次点击按钮时出现以下错误:
08-01 15:01:58.547 18991-18991/? E/MediaPlayer﹕ Should have subtitle controller already set
08-01 15:02:01.030 18991-19008/za.co.site.app E/MediaPlayer﹕ error (1, -1010)
08-01 15:02:01.054 18991-18991/za.co.site.app E/MediaPlayer﹕ Error (1,-1010)
当我再次点击该按钮时,我得到以下错误:
08-01 15:07:09.586 18991-18991/za.co.site.app E/MediaPlayer﹕ start called in state 0
08-01 15:07:09.586 18991-18991/za.co.site.app E/MediaPlayer﹕ error (-38, 0)
08-01 15:07:09.587 18991-18991/za.co.site.app E/MediaPlayer﹕ Error (-38,0)
我正在使用fragement。这是代码:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_main, container, false);
final Button b = (Button) view.findViewById(R.id.button1);
b.setEnabled(false);
final MediaPlayer mediaPlayer = MediaPlayer.create(getActivity(), R.raw.clip);
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(final MediaPlayer mp) {
b.setEnabled(true);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mp.start();
}
});
}
});
return view;
}
阅读后,第一个错误是Android没有找到文件。但是,该文件位于res文件夹内的原始文件夹中,而android肯定会使用R.raw.clip获取该剪辑。通过使用OnPreparedListener,这应该会停止发生第二个错误,因为应用程序在按下按钮之前满足剪辑准备就绪。
我不太确定我做错了什么,想法?
答案 0 :(得分:0)
如果您正在创建这种方式,则无需准备。只需调用start()。
这是因为该文件是本地文件。
答案 1 :(得分:0)
使用媒体播放器时尝试使用mp3文件。我使用的文件是.wav文件。我把文件制作成一个有效的mp3文件。