Articles of android mediaplayer

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

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

stream媒体Youtubevideo

我正在编写一个应用程序来使用stream媒体播放YouTubevideo。 第一种方法: 我使用GData API获取video的RTSP URL。 这里是播放RTSPurl的代码。 VideoView mVideoView = new VideoView(this); setContentView(mVideoView); mVideoView.setVideoURI(Uri.parse("rtsp://rtsp2.youtube.com/CiILENy73wIaGQkDwpjrUxOWQBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp")); mVideoView.start(); 但它会在G1设备和模拟器上引发错误(模拟器在邮件列表中有一些防火墙问题)这里是错误信息 错误/ PlayerDriver(35):命令PLAYER_INIT完成,出现错误或信息PVMFFailure 第二种方法: 从http://www.youtube.com/get_video?v=&t = <>&<>获取3gp文件path的方法。得到文件path后,我可以调用setVideoURI,它播放良好。 但这是一个黑客的方式来达到这个要求。 我也检查了Youtube应用程序,它也做黑客的方式来播放YouTube的URL(检查logcat) 我试图从VideoView更改为MediaPlayer,但没有改变的错误。 有没有“干净”的方式来做到这一点? 请让我知道你的想法。

Android ExoPlayer:它是否解决Android媒体播放器的无缝/无缝播放问题

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

简单的媒体播放器从文件path播放MP3?

我有一个非常简单的播放背景的媒体播放器。 它从apk中调用文件,但我希望它从任何目录播放,如音乐或SD卡。 这是我的代码: private MediaPlayer mpintro; . . mpintro = MediaPlayer.create(this, R.raw.intro); mpintro.setLooping(true); mpintro.start();

音乐播放器控制通知

如何设置播放/暂停通知,android中的下一个和上一个button。 我是新的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它的意义。 官方文档缺乏这方面,所以像堆栈溢出网站是唯一的解决scheme,这一次,即使这不起作用(错误(1; -107)顺便说一句)。 那么有没有一个集中点,我可以find所有的MediaPlayer错误代码的列表? 我在官方文档中找不到它,这将对快速诊断新错误非常有帮助。

SeekBar和Android中的媒体播放器

我有一个简单的播放器和录音机。 一切正常,但有一个问题。 我想添加search栏来查看播放logging的进度,并使用这个search栏从播放器设置的位置应该播放。 我有进步,但没有效果。 这是代码: package com.example.recorder; import java.io.IOException; import android.app.Activity; import android.media.MediaPlayer; import android.media.MediaRecorder; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; public class MainActivity extends Activity implements OnSeekBarChangeListener { private static final String LOG_TAG = "AudioRecordTest"; private static String mFileName = null; private SeekBar seekBar; […]

MediaPlayer在播放开始时口吃

播放保存在原始资源中的MP3文件时,我遇到了一个问题:当文件开始播放时,它可能会产生四分之一秒的声音,然后重新启动。 (我知道这基本上是这里描述的问题的一个重复,但是提供的解决scheme并没有为我工作。)我已经尝试了几件事情,并在这个问题上取得了一些进展,但并不完全固定。 以下是我如何设置播放文件: mPlayer.reset(); try { AssetFileDescriptor afd = getResources().openRawResourceFd(mAudioId); if (afd == null) { Toast.makeText(mOwner, "Could not load sound.", Toast.LENGTH_LONG).show(); return; } mPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); afd.close(); mPlayer.prepare(); } catch (Exception e) { Log.d(LOG_TAG, "Could not load sound.", e); Toast.makeText(mOwner, "Could not load sound.", Toast.LENGTH_LONG) .show(); } 如果我退出活动(调用mPlayer.release() )并返回它(创build一个新的MediaPlayer),则通常(但不是总是)结束, 只要我加载相同的声音文件。 我尝试了几个没有任何区别的东西: 将声音文件加载为资源而不是资源。 使用MediaPlayer.create(getContext(), mAudioId)创buildMediaPlayer并跳过对setDataSource(…)和prepare()的调用。 然后我注意到LogCat总是在播放开始的时候显示这行: […]

Acer Iconia A200上的VideoView getCurrentPosition()不规则

我有一个VideoView的应用程序,我设置了一个video在VideoView中播放。 在video播放的某个时候,它将会暂停。 然后在暂停一段时间之后,它将开始再次播放video,但是如果video没有被暂停,则向前寻找video将处于的位置。 比如说 video开始播放 video在6秒钟后暂停 video停留了10秒 video开始再次播放<—在这一点上,我希望video在16秒的时候开始播放。 为了达到这个效果,我设置了时间戳来完成所需的math运算,所以我知道video暂停了多长时间,然后当我再次启动video时,我调用了mVideoView.seekTo(timePlayed + timePaused); 这一切都按照东芝Thrive和摩托罗拉Xoom的预期工作。 不过在macros碁Iconia A200上看来,从调用seekTo()的angular度来看,VideoView将总是在我调用getCurrentPosition()的同时返回。 为了说明这一点,我设置了一个runnable,大约每1000ms启动一次,logging当前位置。 以下是一些输出结果: /**************** * These are from before it is paused/resumed * you can see that the current time is functioning * as expected. ******************/ Current Position = 0 Current Position = 734 Current Position = 1735 Current Position = 2703 […]

为什么MediaPlayer在创build它的实例时抛出不存在错误?

在创buildMediaPlayer的实例时,LogCat显示此错误: QCMediaPlayer媒体播放器不存在 为什么这是正常的? 样品: package com.example.testapp; import android.app.Activity; import android.media.MediaPlayer; import android.os.Bundle; public class MainActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MediaPlayer mediaPlayer = new MediaPlayer(); } }