我需要在手机(任何位置)的某个地方获取文件的完整路径并使用MediaPlayer播放.
我听说过使用Android的文件选择器(通过启动一个意图).
在测试代码中,我只是将一个资源复制到另一个文件,得到了路径并将其传递给AudioVideoEntry(后面我将展示一个围绕MediaPlayer的非常简单和薄的包装)
这是我写的测试代码:
private String ave_path;
private String ave_file_name = "my_media_content";
private InputStream ave_fis;
private OutputStream ave_fos;
public void testAudioVideoEntry()
{
//get the Activity
Module_JournalEntry journalentryactivity = getActivity();
//open an InputStream to a resource file (in this case strokes.mp3)
ave_fis = journalentryactivity.getResources().openRawResource(module.jakway.JournalEntry.R.raw.strokes);
//open an OutputStream to a new file
try {
ave_fos = journalentryactivity.openFileOutput(ave_file_name,
Context.MODE_PRIVATE);
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
assertTrue(false);
}
catch(Exception e)
{
assertTrue(false);
}
//copy the data from the resource …Run Code Online (Sandbox Code Playgroud) 是什么让windows media player层叠在我的drop菜单页面元素上?如果我更改媒体播放器对象的z-index,它似乎没有帮助.我的下拉菜单页面元素的z-index为99,对象为40.此问题仅在视频运行时发生.当它没有运行时,下拉菜单元素显示在对象的顶部.这是HTML.
<div id="player" style="position: relative; top: 20px; left: 35px; width: 64.5%; border: 2px solid grey; z-index: 40;">
<object id="MediaPlayer" width="100%" height="377" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" style="left: 0px; top: 0px; background-repeat: no-repeat; background-position: center center; z-index: 40;" type="application/x-oleobject">
<param name="uiMode" value="full" />
<param name="AutoStart" value="FALSE" />
<param name="AllowChangeDisplaySize" value="TRUE" />
<param name="AutoSize" value="TRUE" />
<param name="Volume" value="100" />
<param name="URL" value=mms://bstreamlivewm.fplive.net/bstreamlive-live/bstream2 />
<embed type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" name="MediaPlayer" src=mms://bstreamlivewm.fplive.net/bstreamlive-live/bstream2 width="100%" height="377" showcontrols="1" showtracker="1" autostart="0" volume="100" />
</object>
</div>
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,主要目标是播放特定的视频文件.
它有时会正确播放视频.但有时候它给了我这个错误:
03-21 14:52:36.181: I/AwesomePlayer(119):
setDataSource_l('/data/data/my.package.name/files/MyMovie.mp4')
03-21 14:52:36.196: W/VideoView(26612): Unable to open content: /data/data/my.package.name/files/MyMovie.mp4
03-21 14:52:36.196: W/VideoView(26612): java.lang.IllegalArgumentException: The surface has been released
03-21 14:52:36.196: W/VideoView(26612): at android.media.MediaPlayer._setVideoSurface(Native Method)
03-21 14:52:36.196: W/VideoView(26612): at android.media.MediaPlayer.setDisplay(MediaPlayer.java:633)
03-21 14:52:36.196: W/VideoView(26612): at android.widget.VideoView.openVideo(VideoView.java:222)
03-21 14:52:36.196: W/VideoView(26612): at android.widget.VideoView.access$2000(VideoView.java:49)
03-21 14:52:36.196: W/VideoView(26612): at android.widget.VideoView$6.surfaceCreated(VideoView.java:465)
03-21 14:52:36.196: W/VideoView(26612): at android.view.SurfaceView.updateWindow(SurfaceView.java:533)
03-21 14:52:36.196: W/VideoView(26612): at android.view.SurfaceView.access$000(SurfaceView.java:81)
03-21 14:52:36.196: W/VideoView(26612): at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:169)
03-21 14:52:36.196: W/VideoView(26612): at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:590)
03-21 14:52:36.196: W/VideoView(26612): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1617)
03-21 14:52:36.196: W/VideoView(26612): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)
03-21 …Run Code Online (Sandbox Code Playgroud) video android media-player android-4.0-ice-cream-sandwich android-videoview
我做过如果用户点击按钮然后声音正在播放.但是现在我点击后无法发出水声.我不知道为什么?
这是我用来播放声音的代码.
码:
case R.id.lockView:
playSound(R.raw.dooropen);
break;
}
public void playSound(int resources){
boolean mStartPlaying = true;
if (mStartPlaying==true){
mPlayer = new MediaPlayer();
Uri uri = Uri.parse("android.resource://com.project.iMystick/" + resources);
try{
mPlayer.setDataSource(getApplicationContext(),uri);
mPlayer.prepare();
mPlayer.start();
}
catch (IOException e){
Log.e(LOG_TAG, "prepare() failed");
}
}
else{
// stopPlaying();
//rePlay.setText("Replay");
mPlayer.release();
mPlayer = null;
}
mStartPlaying = !mStartPlaying;
}
Run Code Online (Sandbox Code Playgroud)
点击一下后,我在logcat中收到了这种类型的错误信息:
日志:
03-27 16:15:02.737: ERROR/MediaPlayer(1057): Error (-19,0)
03-27 16:15:03.858: DEBUG/AudioSink(34): bufferCount (4) is too small and increased to 12
03-27 16:15:03.858: ERROR/AudioFlinger(34): not enough memory for …Run Code Online (Sandbox Code Playgroud) 我的标记
而这个JQuery代码
每次按下播放时都会继续给我错误
<div class = "container">
<legend><strong>Zedd - Spectrum</legend></h4>
<div class = "art-item"><img src="uploads/arts/default.jpg"></div>
<audio class = "audio-player" src = "uploads/tracks/02 So Far.mp3">
</audio>
<div class = "playerContainer">
<ul id = "playerControls" >
<li class = "play-bt"></li>
<li class = "pause-bt"></li>
<li><div class ="progressContainer"><!-- Progess bars container //-->
<div class ="progressbar"></div>
</div>
</li>
</ul>
<span class ="timecode">0:00</span>
</div>
</div>
<div class = "container">
<legend><strong>Zedd - Spectrum</legend></h4>
<div class = "art-item"><img src="uploads/arts/default.jpg"></div>
<audio class = "audio-player" src = "uploads/tracks/track3.mp3">
</audio> …Run Code Online (Sandbox Code Playgroud) 在我的Android应用程序中,我想从SD卡获取歌曲,但我无法获得该特定文件的路径.我使用的是android api level 7,它不支持以下方法.
Environment.getExternalStoragePublicDirectory (Environment.DIRECTORY_MUSIC);
Run Code Online (Sandbox Code Playgroud)
我也试过以下代码:
path = Environment.getExternalStorageDirectory();
Run Code Online (Sandbox Code Playgroud)
但我不知道如何指定音乐文件的路径.请提出一些解决方案.谢谢.
android media-player android-sdk-2.1 android-sdcard android-mediaplayer
我在这里做了一些RTFM ,但我仍然不确定可以用MediaPlayer播放哪些文件.我知道.wav可以..mp3,.ogg,.flac怎么样?我现在不需要视频文件,但了解它们也很有用.链接到文件类型列表就足够了.谢谢.
我正在使用iOS 6中包含的mediaplayer框架尝试在应用程序中播放电影.我导入然后:
-(IBAction)playMovie:(id)sender
{
NSString *filepath = [[NSBundle mainBundle] pathForResource:@"buyTutorial" ofType:@"mov"];
NSURL *fileURL = [NSURL fileURLWithPath:filepath];
MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
[self.view addSubview:moviePlayerController.view];
moviePlayerController.fullscreen = YES;
[moviePlayerController play];
}
Run Code Online (Sandbox Code Playgroud)
调用此函数时,视图将转到空白屏幕并进行无限加载.我已尝试过此实现的许多其他版本,结果各不相同,都失败了.登录的具体情况是:
2012-11-05 21:19:27.900 [MPAVController] Autoplay: Disabling autoplay for pause
2012-11-05 21:19:27.902 [MPAVController] Autoplay: Disabling autoplay
2012-11-05 21:19:27.977 [MPAVController] Autoplay: Disabling autoplay for pause
2012-11-05 21:19:27.978 [MPAVController] Autoplay: Disabling autoplay
2012-11-05 21:19:27.984 [MPAVController] Autoplay: Skipping autoplay, disabled (for current item: 1, on player: 0)
2012-11-05 21:19:28.156 [MPAVController] Autoplay: Enabling autoplay
Run Code Online (Sandbox Code Playgroud)
有关于原因的想法?这是我第一次尝试播放视频,现在已经成为一场噩梦.
是否可以通过歌曲而不是专辑获得封面图片.因为我有一张带歌曲的自组合专辑,而且他们都有不同的封面图片.但是当我想查询它们时,我总是得到相同的图片.
String[] ARG_STRING = {MediaStore.Audio.Media.ALBUM_ID};
...
String albumCover = _cursor.getString(_cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID));
...
MusicUtils.getArtwork(this, -1, Integer.parseInt(albumID));
Run Code Online (Sandbox Code Playgroud)
所以我想知道如何获得一首歌的封面图片.
我知道MusicUtils支持SongId的getArtwork,但我应该使用什么ID,因为MediaStore.Audio.Media._ID不起作用.
我试图从res/raw文件夹播放音频文件,这是我用来播放文件的代码,这不会产生任何错误,我的设备音量最大,但没有任何声音.我试过MP3和WAV文件.
public void btnPlay(View v) {
MediaPlayer mPlayer = MediaPlayer.create(con, R.raw.horse);
try {
mPlayer.start();
}catch (Exception e) {
e.printStackTrace();
Toast.makeText(con,e.toString(),Toast.LENGTH_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud)
我在启动后在LogCat上收到以下消息
02-07 17:50:42.331: I/MediaPlayer(16345): Don't send intent. msg.arg1 = 0, msg.arg2 = 0
Run Code Online (Sandbox Code Playgroud)
帮助我解决这个问题,将不胜感激.
media-player ×10
android ×7
audio ×2
android-4.0-ice-cream-sandwich ×1
android-ndk ×1
embed ×1
file-type ×1
html5 ×1
ios ×1
iphone ×1
javascript ×1
jquery ×1
loading ×1
mediastore ×1
object ×1
objective-c ×1
path ×1
video ×1