这是一个错误还是在准备时无法释放、停止或杀死MediaPlayer?我有一个MediaPlayer实例在Service中运行,如果我停止、释放、将其设置为null,它会正常停止,而MediaPlayer处于准备状态。但是,如果我停止、释放,如果它处于准备状态,则将其设置为null。onPrepared()在停止、释放、设置为null后调用。一些解决方法?我认为当用户想要在MediaPlayer完成准备之前停止它是常见的用例。 最佳答案 通过查看MediaPlayerdocumentation,不允许对未初始化的对象调用stop();
我正在开发一个简单的应用程序,并使用MediaPlayer在1个Activity中播放一些背景噪音。我正在阅读MediaPlayer,但不确定是否要实现OnPreparedListener来触发start()方法。每种方法的优缺点是什么?方法一:mediaPlayer=MediaPlayer.create(context,R.raw.sound);mediaPlayer.setLooping(true);mediaPlayer.start();方法二:mediaPlayer=MediaPlayer.create(context,R.raw.sound);mediaPlayer.setL
我的应用程序播放为我的应用程序指定的内部目录(/data/data/com...)中的音频资源文件。似乎可以将文件下载到该位置,setDataSource(Stringpath)不会抛出任何异常,但MediaPlayer.prepare()抛出IOException。相同的代码适用于SD卡。为什么会这样?编辑:让我们假设这是代码;它比我的代码更简单,并且抛出相同的异常:packagecom.app.MediaPlayerTest;publicclassMediaTestextendsActivity{MediaPlayermp;@OverridepublicvoidonCreate(B
我将song.mp3复制到我项目的Assets目录并编写了以下代码:privateMediaPlayermp;Uriuri=Uri.parse("file:///android_asset/song.mp3");mp=MediaPlayer.create(this,uri);运行create语句后,变量mp为null。怎么了?谢谢。 最佳答案 试试这个:try{AssetFileDescriptorafd=getAssets().openFd("AudioFile.mp3");player=newMediaPlayer();play
我正在尝试在Android应用程序上实现MediaPlayer,但现在我遇到了两个问题,这两个问题不是最大的问题,但它们更烦人,我必须修复它,只为我自己。我为Activity实现了异步MediaPlayer+Controller,效果很好。我的计划是还显示MediaControl上的缓冲百分比。这也有效。但是现在,在我看到百分比之后,我看到了一个奇怪的行为:如果我寻找一个已经在缓冲区中的位置,缓冲将从这个位置再次开始。这是已知的和/或正常的行为/问题/特征吗?这里有更多的细节:我使用的是2.2SDK我是这样实现的publicclassDetailsextendsActivityimpl
我正在尝试使用SurfaceView在我的应用程序上播放实时流视频,当我尝试使用Vitamio时它播放效果很好,但由于它是HTTP链接,我试图摆脱任何第3方库并使用native类。我一如既往地尝试了VideoView,然后在失败后尝试了SurfaceView基本实现我尝试了这样的纹理视频:@OverridepublicvoidonSurfaceTextureAvailable(SurfaceTexturesurfaceTexture,intwidth,intheight){Surfacesurface=newSurface(surfaceTexture);try{mMediaPlaye
当使用MediaPlayer时,我在LogCat中不断重复以下几行调试消息:02-1314:30:52.090:V/MediaPlayer(21345):getVideoWidth02-1314:30:52.090:V/MediaPlayer-JNI(21345):getVideoWidth:48002-1314:30:52.090:V/MediaPlayer(21345):getVideoHeight02-1314:30:52.090:V/MediaPlayer-JNI(21345):getVideoHeight:36002-1314:30:52.100:V/MediaPlayer-
我有一个奇怪的问题。我将prepareAsync方法与MediaPlayer一起使用,但我声明的监听器从未被触发。我尝试从Internet(广播电台)流式传输实时.mp3提要。我为监听器使用了内联方法,但我也尝试过实现接口(interface)但没有成功。这是我的部分代码:在成员(member)部分:Stringurl="http://.mp3";MediaPlayermediaPlayer=newMediaPlayer();在ActivityonCreate()中:ToggleButtonplayButton=(ToggleButton)findViewById(R.id.playT
我正在编写一个Android闹钟应用程序,它使用一个服务来播放闹钟铃声。目前,我可以播放音频,但它以一种可以通过调低设备音量来静音的形式播放。因此,我正在尝试添加对setAudioStreamType(AudioManager.STREAM_ALARM);的调用以防止出现这种情况。我的onStartCommand()服务函数如下:MediaPlayermMP;@OverridepublicintonStartCommand(Intentintent,intflags,intstartId){try{mMP=MediaPlayer.create(this,R.raw.alarm);mMP
我正在尝试创建一种方法来调整每个不同流(媒体、通知、铃声等)的音量设置,并有一种方法来预览每个流的输出音量。我相信我有正确的实现,但是当我设置输出流类型时,没有播放声音。下面是正确播放用户选择的闹钟声音的代码:UrimediaUri=RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);MediaPlayermp=MediaPlayer.create(getApplicationContext(),mediaUri);//mp.setAudioStreamType(AudioManager.STREAM_ALARM);mp.