Articles of android mediaplayer

在Android应用中播放youtubevideo

在我的Android应用程序中,我希望用户点击一次图像,自动播放YouTubevideo,当video完成后,用户立即返回到应用程序。 Android中最好的方法是什么? 我尝试使用意图。 这在video出现在我认为是一个YouTube网页的作品。 然而,播放video需要另一个水龙头。 如果可能,我想避免这种情况。 我尝试了整个MediaPlayer,prepareAsync,setOnPreparedListener,并没有得到它的工作。 出于某种原因,“准备”从未被召唤过。 没有例外被抛出。 我正在使用模拟器进行testing,而我是Android新手,因此我不确定在物理设备上的行为是否会有所不同。 通过使用webviews获得创意,我在iOS上得到了很好的运行。 我希望在Android上更直接。 该文件确实使声音直截了当。 干杯!

video播放给黑屏,但有声音

我很难过 我试图用媒体播放器播放video,但audio播放时,我所得到的只是一个黑色的窗口。 我见过有关这个问题的其他post,但我没有find解决办法。 我试图按照他们的build议。 媒体播放器在播放前准备好。 在播放之前,表面支架已创build并设置为媒体播放器的显示屏。 在三星Galaxy Tab和三星Galaxy S上testing 我正在编译API级别7。 video本身可以在SD卡的设备video应用程序中播放,所以它应该是兼容的。 表面视图与video大小不一样。 所以这可能是一个问题。 我需要做些什么或自动伸展处理? 以下是我在初始化中的内容: RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(width, height); lp.leftMargin = x; lp.topMargin = y; mSurfaceView = new SurfaceView(mActivity); mSurfaceView.requestFocus(); mSurfaceView.setZOrderOnTop(true); mSurfaceView.getHolder().addCallback(player); mSurfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); mLayout.addView(mSurfaceView, lp); mMediaPlayer = new MediaPlayer(); mMediaPlayer.setDataSource(assetDescriptor.getFileDescriptor(), assetDescriptor.getStartOffset(), assetDescriptor.getLength()); mMediaPlayer.setOnErrorListener(player); mMediaPlayer.setOnPreparedListener(player); mMediaPlayer.prepare(); 这里是我的callback: public void onPrepared(MediaPlayer mp) { mMediaPlayer.start(); } […]

Android – QCMediaPlayer mediaplayer不存在 – 根本无法播放声音

我试图从Url播放audio,使用下面的代码: String url = "1451739079.mp3"; MediaPlayer player = new MediaPlayer(); player.setAudioStreamType(AudioManager.STREAM_MUSIC); try { player.setDataSource(url); }catch (IOException e){ e.printStackTrace(); } player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { mp.start(); } }); 但是这根本不起作用,在logcat中显示错误: E/MediaPlayer-JNI: QCMediaPlayer mediaplayer NOT present 我已经访问过这个post ,但没有帮助。 请build议如何播放来自Url的audio?

从android上的IP摄像机接收videostream

我有一个以MJPEG格式stream式传输video的IP摄像机。 现在我的目标是接收它,并显示在我自己的自定义Android应用程序。 为此,我在android平台上有三种编程select: 使用内置的Anrdroid MediaPlayer类 在本地C中使用FFMPEG库并通过JNI访问它 在android上使用GStreamer端口来接收stream 那么请build议更好的解决scheme? 我没有使用FFMPEG或GStreamer的经验。 那么这样做的可行性是什么?

Android – 保存rtsp(h264)stream到mp4文件

我正在做一个需要的项目 从一个IPCamera读取input的H.264编码stream – 我可以通过一个rtspurlrtsp://192.168.1.83:8001 / 显示IPCamerastream – 这是我能够使用的 final VideoView vv = (VideoView) findViewById(R.id.video_view_h264); MediaController mc = new MediaController(getApplicationContext()); vv.setVideoURI(video); vv.setMediaController(mc); vv.requestFocus(); vv.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { public void onPrepared(MediaPlayer mp) { vv.start(); } }); 现在我想logging这个stream到一个MP4文件。 这是我卡住的地方,我正在考虑以下选项 a)MediaRecorder – 基于我的谷歌search,我相信这个类只能从设备相机input。 有没有一种方法来调整,我可以提供来自rtspstream的input? b)MediaCodec API – 从4.1开始,Android和MediaExtractor和MediaCodec一起发布了这个低级API。 对于这个选项,我认为rtspstream不能用在下面的代码片段中 final String STREAM_URL = "rtsp://192.168.1.83:8001/"; MediaExtractor mediaExtractor = new MediaExtractor(); mediaExtractor.setDataSource(STREAM_URL); […]

Android – 从MP3stream中读取ID3标签

我正在使用MediaPlayer传输MP3文件 mp.setDataSource(myContext, Uri.parse("http://my_song.mp3")); mp.prepareAsync(); mp.setOnPreparedListener(mpOnPreparedListener); mp.setOnBufferingUpdateListener(mpOnBufferingUpdateListener); 任何关于如何使用android API或其他方法从这个stream中读取ID3标签的想法?

Android:在活动屏幕方向更新期间保持MediaPlayer运行

我使用MediaPlayer播放MP3。 目前我通过使用禁用屏幕方向更改 android:screenOrientation="portrait" android:configChanges="keyboardHidden|orientation" 在清单中。 我现在想要支持横向模式 – 即移除这些标签 – 但是有问题,在销毁/创build循环期间,播放器被停止然后重新启动。 这是可以的,我甚至在onPause()手动执行这个操作来在活动进入后台时停止播放器。 为了在方向变化时保持运行,我尝试将其设置为静态(并使用应用程序上下文创build一次)。 当然,当我现在删除了onPause()中的player.stop()时,它就是我想要的 – 直到 Activity在后台运行。 所以,有两个问题: 如何确定在调用onStop()之后是否直接重新创buildActivity 或者:如何让MediaPlayer在该周期内保持运行,而当应用程序在后台运行时停止运行?

MediaPlayer:无法在客户端打开文件; 错误(-38,0)等等

我正在学习Android,并创build了一个具有两个button的活动:一个ToggleButton(播放/暂停)和一个button(下一个)。 我有两首歌曲,希望按下一个循环。 我有一个数组 int [] songs={R.raw.song1,R.raw.song2}; 我覆盖了我的活动中的onClick。 第一首歌很好, 但按下一步后,我得到以下错误: 无法打开客户端上的文件,尝试服务器端 E / MediaPlayer(3107):在状态4开始调用 E / MediaPlayer(3107):错误(-38,0) E / MediaPlayer(3107):错误(-38,0) E / MediaPlayer(3107):错误(1,-2147483648) E / MediaPlayer(3107):错误(1,-2147483648) 在onCreate(Bundle …)中, if(mp!=null) mp.release(); mp=MediaPlayer.create(this, songs[count]); 这是我的onClick(View v)方法: public void onClick(View view) { Log.v(TAG,"ID:"+view.getId()); switch (view.getId()) { case R.id.playerbutton: //ToggleButton if(state==0) { mp.start(); state=1; } else if(state==1) { state=0; mp.pause(); […]

Android MediaPlayer错误(-38,0)“在状态0中停止调用”

我看了各种不同的网站,在我的代码中寻找这个问题的解决scheme。 这是一个基本的audio播放器,有3个button:播放,暂停和停止。 播放和暂停工作正常,所以停止,但一旦audio已经停止,它拒绝再次启动,抛出一个错误: E/MediaPlayer: stop called in state 0 E/MediaPlayer: error (-38, 0) E/MediaPlayer: Error (-38,0) 这是我的MainActivity.java: import android.app.Activity; import android.media.MediaPlayer; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.SeekBar; import java.io.IOException; public class MainActivity extends Activity implements MediaPlayer.OnPreparedListener { static Button playButton; static Button pauseButton; static Button stopButton; static […]

Android MediaPlayer重置会冻结UI

更改播放器的dataSource时,Android MediaPlayer出现问题。 根据MediaPlayer的规范( http://developer.android.com/reference/android/media/MediaPlayer.html ),我必须在更改dataSource时reset播放器。 这工作正常,但只要连续两次调用channelChanged方法, MediaPlayer.reset冻结UI。 我在这里看到代码的configuration文件: public void channelChanged(String streamingUrl) { long m1 = System.currentTimeMillis(); mMediaPlayer.reset(); long m2 = System.currentTimeMillis(); try { mMediaPlayer.setDataSource(streamingUrl); } catch (IOException e) { e.printStackTrace(); } long m3 = System.currentTimeMillis(); mMediaPlayer.prepareAsync(); long m4 = System.currentTimeMillis(); Log.d("MEDIAPLAYER", "reset: " + (m2 – m1)); Log.d("MEDIAPLAYER", "setDataSource: " + (m3 – m2)); […]