Articles of android mediaplayer

任何人有MediaPlayer使用ParcelFileDescriptor和createPipe()?

关于我最近在MediaRecorder和createPipe() ,以及在其他SO问题中对createPipe()技术的讨论 ,我现在试图让MediaPlayer通过ParcelFileDescriptor和createPipe()来处理由ContentProvider提供的内容。 这个示例项目迄今为止我的工作。 它基于一个早期的样本,播放存储为原始资源的OGG剪辑 。 因此,我知道我的剪辑是好的。 我已将MediaPlayer设置更改为: private void loadClip() { try { mp=new MediaPlayer(); mp.setDataSource(this, PipeProvider.CONTENT_URI.buildUpon() .appendPath("clip.ogg") .build()); mp.setOnCompletionListener(this); mp.prepare(); } catch (Exception e) { goBlooey(e); } } 通过loginPipeProvider ,我看到我的Uri正在构build。 PipeProvider和这个示例项目是一样的, 这个示例项目适用于将PDF提供给Adobe Reader,这限制了我的代码可能会如何搞砸。 🙂 具体来说, openFile()从ParcelFileDescriptor创build一个pipe道: @Override public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException { ParcelFileDescriptor[] pipe=null; try { pipe=ParcelFileDescriptor.createPipe(); AssetManager assets=getContext().getResources().getAssets(); […]

rtspvideo性能作为浏览器触发的意图与我的应用程序触发的意图

您好我正在创build一个应用程序,将播放livestream.com的rtsp直播频道。 我在我的应用程序中使用intent启动播放器,如下所示: iPlayer = new Intent(Intent.ACTION_VIEW); //iPlayer.setType("video/*"); iPlayer.setData(Uri.parse(videoUrl)); startActivity(iPlayer); 当媒体播放器通过我的应用程序启动时,video性能非常差。 它停止每隔几秒缓冲,播放几秒钟,然后暂停缓冲。 另一方面,如果我打开Android浏览器中的url(例如http://m.livestream.com/abcalbania ),它在该页面上有一个video标签,并触发video播放器。 这段时间,video运行非常stream畅。 任何想法为什么这可能发生? 以及如何可以解决这个问题? 我不想按照意图启动浏览器URL。 这是在Android 2.3.4 Atmel cortex A9芯片组上完成的

Android:找不到QCMediaPlayer

我有一个mediaplayer的问题,因为我更新我的android -version到我的LG智能手机5.0.2。 我有一个单独的课,播放音乐 public class MediaPlayerService { public static MediaPlayer mediaPlayer; private static SoundPool soundPool; public static boolean isplayingAudio = false; static int soundID; public static enum State { Stopped, Playing, } static State mState = State.Stopped; public static void playAudioFromMediaPlayer(Context c) { mediaPlayer = new MediaPlayer(); mediaPlayer = MediaPlayer.create(c, R.raw.hooray); if (!mState.equals(State.Stopped)) { mediaPlayer.start(); […]

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

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

如何更改mediaplayer中的字幕

我可以分配一次字幕,但之后如果我试图改变字幕。 它不会接受新的,每次都显示前一个。 下面的代码我用来改变字幕。 MediaPlayer mediaPlayer; public void changeSubtitle() { //disable subtitle if it has if(textTrackIndex!=0){ mediaPlayer.deselectTrack(textTrackIndex); textTrackIndex=0; mediaPlayer.setOnTimedTextListener(null); } //try to asssign new subtitle mediaPlayer .addTimedTextSource( (Environment.getExternalStorageDirectory() .getPath() + "/"+"filename", MediaPlayer.MEDIA_MIMETYPE_TEXT_SUBRIP); int textTrackIndex = findTrackIndexFor(TrackInfo.MEDIA_TRACK_TYPE_TIMEDTEXT,mediaPlayer.getTrackInfo()); if (textTrackIndex >= 0) { mediaPlayer.selectTrack(textTrackIndex); } else { Log.w(TAG, "Cannot find text track!"); } mediaPlayer.setOnTimedTextListener(this); } private int findTrackIndexFor(int […]

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倍。

Android WebView播放HTML5 / h.264 / mp4video,如何获取MediaPlayer

我有一个Activity ,这是一个WebView 。 里面有一个WebChromeClient 。 里面有几个callback函数可以返回MediaPlayer处理video的位数。 例如: @Override public void onPrepared(MediaPlayer mp) { Log.i(TAG, " ————-> onPrepared"); } 当我使用HTML <video>标记(通过注入)将一个MP4stream加载到WebView时,这些操作失败。 当我finish()活动时,logcat报告这个: 09-13 23:55:24.590: E/MediaPlayer(7949): mOnBufferingUpdateListener is null. Failed to send MEDIA_BUFFERING_UPDATE message. 09-13 23:55:24.680: E/MediaPlayer(7949): mOnBufferingUpdateListener is null. Failed to send MEDIA_BUFFERING_UPDATE message. 09-13 23:55:24.680: E/MediaPlayer(7949): mOnVideoSizeChangedListener is null. Failed to send MEDIA_SET_VIDEO_SIZE message. 09-13 […]

Android MediaPlayer警告:应该已经设置了字幕控制器

我的Nexus 4升级到了4.4,现在只要MediaPlayer播放声音,我就会收到警告: Should have subtitle controller already set 还调用mp.release()我现在得到警告 mediaplayer went away with unhandled events Nexus 7 4.3上的相同应用程序不会显示这些警告。

在recyclerview中使用textureview播放video

我正在尝试使用藤或Instagram应用等video来实现列表。 当列表项目被显示或完全可见时,他们在哪里播放video播放,并且当列表项目被隐藏时video暂停。 我用媒体播放器的纹理视图播放来自url的video,并将其作为列表项添加到recyclerview中。 以下是我的代码。 VideosAdapter类: public class VideosAdapter extends RecyclerView.Adapter<VideosAdapter.ViewHolder> { Context context; private ArrayList<String> urls; public static class ViewHolder extends RecyclerView.ViewHolder { public LinearLayout layout; public TextView textView; public ViewHolder(View v) { super(v); layout = (LinearLayout) v.findViewById(R.id.linearLayout); textView = (TextView) v.findViewById(R.id.textView); } } public VideosAdapter(Context context, ArrayList<String> urls) { this.context = context; this.urls = […]

音乐播放器控制通知

如何设置播放/暂停通知,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, […]