Articles of android mediaplayer

Android MediaPlayer需要很长时间来准备和缓冲

我的应用程序需要很长时间来准备和缓冲音频流。 我已经读过这个问题为什么Android的MediaPlayer需要这么长时间来准备一些实时流播放? 然而,它只是说人们已经遇到过这个问题,它没有说明如何改善这个问题。 我在所有版本的Android中都遇到过这种情况,从2.2 – 4.1.2开始测试。 这些流具有适合移动和3G连接的比特率。 在相同的iOS应用程序中,相同的流只需不到一秒钟即可开始缓冲。 有没有办法指定应该缓冲的时间量? 我知道Tune In广播应用程序提供此function( https://play.google.com/store/apps/details?id=tunein.player )。 谢谢。 编辑:我再次测试,发现它只发生在运行Gingerbread及以上的设备上(> = 2.3)。 我知道Android将底层框架从OpenCore改为StageFright。 那么我该如何优化媒体框架呢? 旧的HTC Wildfire可以准备,流式传输和播放,这比全新的HTC One X和Nexus 7快10倍。

流式传输到Android MediaPlayer

我正在尝试在我的应用程序中编写一个轻量级HTTP服务器,以feed动态生成的MP3数据提供给内置的Android MediaPlayer 。 我不允许将我的内容存储在SD card 。 我的输入数据基本上是无限长度的。 我告诉MediaPlayer它的数据源基本上应该是”http://localhost/myfile.mp3″ 。 我有一个简单的服务器设置,等待MediaPlayer发出此请求。 但是, MediaPlayer并不是很合作。 首先,它进行HTTP GET并尝试获取整个文件。 如果我们尝试简单地将数据转储到socket那么我们尝试使用HTTP Range标头以块的forms写入数据。 MediaPlayer不喜欢这样,并且不会继续请求后续的块。 有没有人有成功的数据直接流入MediaPlayer ? 我需要实现RTSP或Shoutcast服务器吗? 我只是错过了一个关键的HTTP header ? 我应该在这里使用什么策略?

Android MediaPlayer / VideoView错误(1,-2147483648)

我从文件路径设置VideoView的video时遇到了不一致的经历。 VideoView myVideoView = findViewById(R.id.videoView); … myVideoView.setVideoPath(videoFilename); … myVideoView.start(); videoFilename是我的缓存目录中video的绝对路径: String videoFilename = new File(context.getCacheDir(), “myawesomevideo.mp4”).getAbsolutePath(); 在Android SDK> = 16(Jelly Bean)中,这很好用,我的精彩video播放。 在Android 4.0.4(SDK = 15)中,当调用myVideoView.start()时,MediaPlayer会中断。 错误是永远无益的: error (1, -2147483648) 我在这里想念的是什么? 直接从我的包资产(res / raw)或互联网( http://something.com/myawesomeinternetvideo.mp4 )加载文件,但我无法弄清楚如何从缓存目录中读取文件!

播放按钮的默认android声音,单击onTouch()方法

在我的Android应用程序中我有一些按钮,应该使用onTouch()方法,当然我需要更改按钮的文本,当手指在ACTION_DOWN位置。 但是这个按钮应该播放按钮点击的默认 android声音(就像onClick()方法)。 哪里可以find这样的声音? 我想,它必须在SDK中,但我怎样才能find它? 哪种方法更适合这种操作? 我正在使用MediaPlayer。 清单: public boolean onTouch(View v, MotionEvent event) { int action = event.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: addTextShadow(v); Log.v(LOG_TAG, “ACTION_DOWN”); break; case MotionEvent.ACTION_MOVE: clearTextShadow(v); isMoved = true; Log.v(LOG_TAG, “ACTION_MOVE”); break; case MotionEvent.ACTION_UP: Log.v(LOG_TAG, “ACTION_UP”); if (!isMoved) { clearTextShadow(v); if (v.getId() == R.id.btn_new) { Log.v(LOG_TAG, “New pressed”); playSound(); //MY […]

如何在android中静音MediaPlayer

如何在android中静音MediaPlayer

通知中的音乐播放器控制

如何在android中设置播放/暂停,下一个和上一个按钮的通知。 我是Android的新手,也是堆栈溢出的新手。 所以请耐心等待。 我开始播放歌曲时设置通知,如下所示: ` @SuppressLint(“NewApi”) public void setNotification(String songName){ String ns = Context.NOTIFICATION_SERVICE; NotificationManager notificationManager = (NotificationManager) getSystemService(ns); @SuppressWarnings(“deprecation”) Notification notification = new Notification(R.drawable.god_img, null, System.currentTimeMillis()); RemoteViews notificationView = new RemoteViews(getPackageName(), R.layout.notification_mediacontroller); //the intent that is started when the notification is clicked (works) Intent notificationIntent = new Intent(this, AudioBookListActivity.class); PendingIntent pendingNotificationIntent = PendingIntent.getActivity(this, 0, […]

MediaPlayer错误代码的完整列表

我正在实施一个MediaPlayer 。 一切顺利但每次遇到新的错误都很难find它的含义。 官方文档在该领域缺乏,所以像堆栈溢出的网站是唯一的解决方案,这次即使这不起作用(错误(1; -107)顺便说一句)。 那么是否有一个集中点,我可以find所有MediaPlayer错误代码的列表? 我在官方文档中找不到它,快速诊断新错误会非常有帮助。

在MediaPlayer中将数据源设置为原始ID

在MediaPlayer.create方法中,可以使用到Raw文件的id但是如何在setDataSource方法中使用它?

Android ExoPlayer:它是否解决了Android Media Player的无缝/无缝播放问题

有没有人尝试使用ExoPlayer来实现这一目标? 我尝试在线查看但没有成功。 当我说无缝播放时,我指的是使用媒体播放器背靠背播放本地video的问题。 在完成第一个video播放后,在第二个video开始之前会有明显的1秒延迟。 希望这个问题有助于进一步理解这个问题。 如需参考,请查看以下问题: Android:MediaPlayer无间隙或无缝video播放

ExoPlayer和start / pause / seekTo命令

我试图使用ExoPlayer ,而不是MediaPlayer ,我似乎无法弄清楚… MediaPlayer有.pause() .start() / .pause()命令……我可以seekTo(1287)并自动开始播放… 如何使用ExoPlayer执行此操作? 我曾尝试过seekTo(1287)但它没有开始播放……之后我也添加了.setPlayWhenReady(true) ,但仍然没有运气…… 我能够.stop() …但是我不能让它在那之后重新开始播放,除非我.prepare()再次…但是我不认为我应该在每次停顿之间做到这一点玩。 我在ExoPlayer演示中使用自己的控件和方法与MediaController相反…我无法看到控件是如何实现的…… 有人建议吗? 编辑: 好的,我想出了停顿并开始…… .setPlayWhenReady(true) // start .setPlayWhenReady(false) // pause 但是我仍然遇到跟踪问题…… .seekTo间歇性地工作……有时它会起作用……但有时候我会收到这个错误: E/AudioTrack: AudioTrack::set : Exit (它只进入缓冲状态……并没有完全达到“准备好”……