Articles of android mediaplayer

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)); […]

Android:录音和保存audio

我正在开发一个应用程序来logging用户的声音,并将文件保存在SD卡上,然后让用户再次听audio。 我能够让用户使用RecognizerIntent录制他的声音,但我不知道如何保存audio文件,并允许用户听到的audio。 如果有人能帮助我,我将不胜感激。 我已经在下面显示了我的代码: // Setting up the onClickListener for Audio Button attachVoice = (Button) findViewById(R.id.AttachVoice_questionandanswer); attachVoice.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent voiceIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); voiceIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); voiceIntent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Please Speak"); startActivityForResult(voiceIntent, VOICE_REQUEST); } }); protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(requestCode == VOICE_REQUEST && resultCode == RESULT_OK){ }

用MediaPlayer同时播放多首歌曲:只有一首正在播放

我需要在Android同时播放多个音轨的帮助。 我应该使用Android.Media.MediaPlayer在同一时间播放三个音轨 。 昨天我设法做到这一点: MediaPlayer track1 = MediaPlayer.create(this, R.raw.track1); MediaPlayer track2 = MediaPlayer.create(this, R.raw.track2); MediaPlayer track3 = MediaPlayer.create(this, R.raw.track3); 正如你所看到的,我在这里有三个独特的MediaPlaye 实例 。 因为我被要求,我需要在后台线程中播放这些MediaPlayer 。 以下是我启动MediaPlayers的部分: //let's suppose this code snippet is in a run() method inside a Thread (which is the case) track1.start(); track2.start(); track3.start(); 如果我昨天说,那是因为第二天,它没有按预期工作。 事实上, 开始MediaPlayer似乎停止任何以前播放的媒体播放器 。 我在debugging器模式下testing:显然, track2.start()停止track1的MediaPlayer,并遵循相同的模式, track3.start()停止tack2的MediaPlayer。 所以最后只播放第三首曲目,无论音量设置如何,我都听不到任何以前的曲目,而我之前可以听到所有的曲目:它应该创造出某种氛围。 当然,改变曲目开始的顺序不会改变任何东西:只有最后一首曲子会被听到。 如果我说“听到”,那是因为在debugging器模式下,检查MediaPlayer.isPlaying属性返回true […]

一个接一个地播放audio文件

我有这样的audio文件列表, int music_numbers[] = { R.raw.one, R.raw.two, R.raw.three, R.raw.four, R.raw.five, R.raw.six, R.raw.seven, R.raw.eight, R.raw.nine }; 我需要一一播放 – 当我发送100这个play_numbers方法 – 我打算数字明智.. 我已经做到了这一点 – 但我无法一个接一个地做这个。 private void _play_numbers(final String i) { // TODO Auto-generated method stub mPlayer = MediaPlayer.create(PlayFileActivity.this, R.raw.payment); mPlayer.start(); mPlayer.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { // TODO Auto-generated method stub mPlayer.stop(); myDigit […]

Xamarin Android播放器 – 无法播放此video

我正在使用Android的VideoView在我的应用中播放embedded的video。 它在我的设备上工作正常,但我一直在Xamarin Android播放器中收到“无法播放此video”消息和黑屏。 相应的错误日志如下所示: Unable to play video [MediaPlayer] Error (1,-38) [VideoView] Error: 1,-38 我发现了一些关于这个错误的post,但是他们都没有帮我解决这个问题,我无法find这个状态码的正确描述。 我的C#代码如下所示: videoView = new VideoView (Context); base.SetNativeControl (videoView); videoView.SetOnErrorListener (new ErrorListener ()); string fileName = e.NewElement.FileSource; fileName = fileName.ToLower ().Substring (0, fileName.LastIndexOf (".")); int resourceID = Context.Resources.GetIdentifier (fileName, "raw", Context.PackageName); var fullPath = String.Format ("android.resource://{0}/{1}", Context.PackageName, resourceID); videoView.SetVideoPath (fullPath); videoView.RequestFocus […]

(Android MediaPlayer)如果MediaPlayer.create()隐式调用prepare(),我该如何调用setAudioStreamType()?

我正在编写一个Android闹钟应用程序,使用服务来播放闹钟铃声。 目前,我可以播放audio,但播放的音量可以通过closures设备的音量来消除。 因此,我想添加一个调用setAudioStreamType(AudioManager.STREAM_ALARM); 为了防止这一点。 我有以下服务的onStartCommand()函数: MediaPlayer mMP; @Override public int onStartCommand(Intent intent, int flags, int startId) { try { mMP = MediaPlayer.create(this, R.raw.alarm); mMP.setAudioStreamType(AudioManager.STREAM_ALARM); mMP.setLooping(true); //mMP.prepare(); commented out since prepare() is called in create } catch (Exception e) { e.printStackTrace(); } if (mMP != null) mMP.start(); return START_STICKY; } 我的问题是,通过调用setAudioStreamType(),MediaPlayer从不播放audio。 如果我评论这一行,audio播放。 随着行,我得到以下运行时错误(S): 04-10 19:32:03.115:E / […]

在还在准备的时候停止或释放MediaPlayer

这是一个错误还是不可能在准备时释放,停止或终止MediaPlayer ? 我有一个在Service运行的MediaPlayer实例,如果停止,释放,设置为空, MediaPlayer处于准备状态 ,则停止运行。 但是,如果我停止,释放,如果它处于准备状态 ,则将其设置为空。 onPrepared()在停止,释放,设置为空之后被调用。 一些解决方法呢? 我认为这是常见的使用情况,当用户想要停止MediaPlayer完成准备之前。

mediaPlayer错误-38,0

我尝试做简单的在线广播播放器。 这里是streamhttp://radio-electron.ru:8000/96的地址这是我的代码。 MyActivity.java package com.example.untitled2; import android.app.Activity; import android.media.AudioManager; import android.media.MediaPlayer; import android.net.Uri; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.Toast; import java.io.IOException; public class MyActivity extends Activity { MediaPlayer mediaPlayer; Button playButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public void onStart() { super.onStart(); } @Override public void onResume() […]

在Android 4.2.2上播放video时,Android MediaPlayer会闪烁

我正面临Android MediaPlayer类的一个奇怪的问题。 我正在使用MediaPlayer在VideoView中播放video。 这在所有设备上都能正常工作,除了Android 4.2.2的三星GT-I8200N。 那么,我实际上已经听说过有些video不能在某些三星4.1.X设备上播放,但是我没有能够接触到这些设备之一。 我不会在Google Android仿真器中发现任何错误。 更多细节:Android 4.2.2的三星GT-I8200N能够在一个片段中播放video,但不能在另一个片段中播放,即使使用相同的代码播放video。 当video开始时,整个屏幕会闪烁黑色,除了video应该在的空间之外。 这里是代码: public abstract class AbstractSignVideoFragment extends Fragment { private static final double MAXMIMUM_VIDEO_HEIGHT_ON_LANDSCAPE = 0.4; private static final double MAXIMUM_VIDEO_WIDTH_ON_PORTRAIT = 0.8; private final static String TAG = AbstractSignVideoFragment.class.getSimpleName(); private static final String ANDROID_RESOURCE = "android.resource://"; private static final String SLASH = "/"; private […]

Android HTTP直播使用mediaplayer的URL

我试图播放一个url,但它没有播放,我使用的代码是在下面.. logcat显示Mediaplayer错误(1,-1002),开始状态为0和错误(-38,0)为什么…? 我哪里去错了……你可以帮我出去玩吗…….. import java.io.IOException; import android.app.Activity; import android.media.AudioManager; import android.media.MediaPlayer; import android.os.Bundle; import android.view.View; import android.widget.ImageButton; import android.widget.TextView; public class BacaFatihahActivity extends Activity { final String songs_urIs= "http://stream.radiosai.net:8002/"; // private TextView txt_song_title; private MediaPlayer mediaplayer; @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); ImageButton btn_play = (ImageButton) findViewById(R.id.button_play); ImageButton btn_pause = (ImageButton) findViewById(R.id.button_pause); ImageButton btn_next […]