我有两个不同的视频,我正在尝试加载到VideoView使用中
videoView.setVideoURI(Uri.parse(url));
Run Code Online (Sandbox Code Playgroud)
这两个视频,即视频1和视频2,具有以下规格(使用提取ffmpeg -i); 实际上,它们是同一视频的两种不同编码:
视频1:
Seems stream 0 codec frame rate differs from container frame rate: 180000.00 (180000/1) -> 90000.00 (180000/2)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '4fbfd5ece4b0932236fc234d.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isomavc1
creation_time : 2011-12-03 04:43:46
genre : Trailer
artist : Paramount Pictures
title : Captain America: The First Avenger - Theatrical Trailer #2
encoder : HandBrake 4344svn 2011111001
date : 2011
Duration: 00:02:30.67, start: 0.000000, bitrate: 6738 …Run Code Online (Sandbox Code Playgroud)我有android G1固件1.6,我试图用以下代码从应用程序录制语音.
MediaRecorder recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setOutputFile(PATH_NAME); recorder.prepare(); recorder.start();
我的manifest.xml有:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
我有:
09-23 14:41:05.531: ERROR/AndroidRuntime(1718): Uncaught handler: thread main exiting due to uncaught exception 09-23 14:41:05.551: ERROR/AndroidRuntime(1718): java.lang.RuntimeException: setAudioSource failed. 09-23 14:41:05.551: ERROR/AndroidRuntime(1718): at android.media.MediaRecorder.setAudioSource(Native Method)
我该如何正确录制声音?
我正在使用AVPlayerHTTP直播的无线电应用程序.现在我想为该音频流实现一个电平表.最好的水平仪显示不同的频率,但简单的左/右解决方案将是一个很好的起点.
我发现了几个使用的例子AVAudioPlayer.但我无法找到解决所需信息的解决方案AVPlayer.
有人能想到我的问题的解决方案吗?
编辑我想创建这样的东西(但更好)

编辑二
一个建议是用于MTAudioProcessingTap获取原始音频数据.我可以使用[[[_player currentItem] asset] tracks]数组找到的例子,在我的例子中,是一个空数组.另一个建议是使用[[_player currentItem] audioMix]哪个null适合我.
编辑III
经过多年,似乎仍然没有解决方案.我确实取得了进步,所以我正在分享它.
在设置过程中,我正在向playerItem添加一个键值观察器:
[[[self player] currentItem] addObserver:self forKeyPath:@"tracks" options:kNilOptions context:NULL];
//////////////////////////////////////////////////////
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)changecontext:(void *)context
if ([keyPath isEqualToString:@"tracks"] && [[object tracks] count] > 0) {
for (AVPlayerItemTrack *itemTrack in [object tracks]) {
AVAssetTrack *track = [itemTrack assetTrack];
if ([[track mediaType] isEqualToString:AVMediaTypeAudio]) {
[self addAudioProcessingTap:track];
break;
}
}
}
- …Run Code Online (Sandbox Code Playgroud) 我正在尝试在a里面播放视频UIView,所以我的第一步是为该视图添加一个类,并使用以下代码开始在其中播放电影:
- (IBAction)movie:(id)sender{
NSBundle *bundle = [NSBundle mainBundle];
NSString *moviePath = [bundle pathForResource:@"Movie" ofType:@"m4v"];
NSURL *movieURL = [[NSURL fileURLWithPath:moviePath] retain];
MPMoviePlayerController *theMovie = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
theMovie.scalingMode = MPMovieScalingModeAspectFill;
[theMovie play];
}
Run Code Online (Sandbox Code Playgroud)
但是当它在自己的类中使用这个方法时,这只是崩溃应用程序,但在其他地方很好.有谁知道如何在视图中播放视频?并避免全屏?
我需要获取需要从应用程序播放的一系列语音通知的音频文件的持续时间.我已将音频文件添加为资源,它们确实可以正常播放.下面的示例代码实际上完全符合其预期目的:它确实返回音频文件的持续时间.
这是代码:
float getDurationOfAudioResource(LocationEnum loc, Context context){
float duration = 0;
try {
MediaPlayer mp;
mp = MediaPlayer.create(context, getAudioResource(loc));
duration = mp.getDuration();
mp.release();
mp = null;
}
catch (IllegalStateException e) {e.printStackTrace(); logError(25, "TestDescItem:Fault::Could not open mediaplayer object with audio resource.");}
return duration;
}
Run Code Online (Sandbox Code Playgroud)
这是奇怪的事情.此代码在Main活动中调用,该活动为给定测试准备一组音频指令.此活动中没有错误.但是一旦调用了第二个活动,我就会在logcat上遇到一长串错误.
03-07 13:23:43.820: I/ActionLogger(21435): GenTest_Info_Test #0 successfully created.
03-07 13:23:43.830: I/ActionLogger(21435): GenTest_Info_Test #1 successfully created.
03-07 13:23:43.840: I/ActionLogger(21435): GenTest_Info_Test #2 successfully created.
03-07 13:23:43.850: I/ActionLogger(21435): GenTest_Info_Test #3 successfully created.
<snip>
03-07 13:23:43.910: I/ActionLogger(21435): GenTest_Info_all tests successfully created. …Run Code Online (Sandbox Code Playgroud) 关于params设置什么使播放器没有声音和完整的声音
谢谢
我正在构建一个非原生声音格式的音频播放器.应用程序的层次结构基于iPod.app.它有许多UITableView's和one UIView(TrackView),用于MPVolumeView允许用户在屏幕上更改音量.在第一次TrackView显示之前,使用硬件按钮更改音量会按预期(和所需)显示系统音量叠加.当TrackView可见MPVolumeView时,自从使用硬件按钮(也需要)更改音量时更新后,这些叠加不会出现.
问题在于:一旦退出TrackView系统,使用硬件音量按钮时就不会出现音量叠加.我曾尝试编程allocing,创建和加入MPVolumeView的TrackViewController viewWillAppear:,然后删除,释放和零-ING相同MPVolumeView的TrackViewController viewWillDisappear:.
这在iPod.app中不会发生.MPVolumeView使用硬件音量按钮时,退出包含系统卷覆盖显示的视图后.
我错过了什么?
更新2:这似乎是MPVolumeView中的一个错误,它在iOS 3.2之后的某个时候引入并在4.2中修复.
更新:我从基于窗口的默认应用程序项目中进行了简单的缩减,该项目表现出相同的行为.一旦MPVolumeView变得可见,系统卷覆盖将再次在应用程序中看不到.
VolumeAppDelegate.h:
#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>
@interface VolumeAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
IBOutlet UIView *volumeView;
IBOutlet MPVolumeView *mpVolumeView;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
-(IBAction)toggleVolumeView:(id)sender;
@end
Run Code Online (Sandbox Code Playgroud)
VolumeAppDelegate.m:
#import "VolumeAppDelegate.h"
@implementation VolumeAppDelegate
@synthesize window;
-(IBAction)toggleVolumeView:(id)sender{
if (mpVolumeView == nil){
mpVolumeView = [[MPVolumeView …Run Code Online (Sandbox Code Playgroud) 我已经实现了一个Activity,它从android中的URL播放媒体
为了在传入呼叫进入时添加暂停功能,我创建了一个接收器,在呼叫到来时设置一个变量.活动读取此变量,然后在其onPause()方法中暂停音乐,并且重置是在完成调用并且活动在其onResume()方法中恢复音乐时
只要活动具有焦点,这就可以正常工作.如果我在播放音乐时返回主屏幕然后通话,则不会调用活动的暂停,因此我可以"停止并启动音乐"
这是什么出路?有人实施了一个媒体播放器,以便它一直拦截来电和拨出电话并停止并正确启动音乐?
我想将动态生成按钮中的电影网址传递给MediaPlayer:
[button addTarget:self action:@selector(buttonPressed:) withObject:[speakers_mp4 objectAtIndex:[indexPath row]] forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)
但action:@selector() withObject:不起作用?
还有其他解决方案吗?
感谢帮助!
我在我的Android手机中有一个mp3文件,让它在我的SD卡中的某个地方是xyz.mp3.如何通过我的应用程序播放它?
media-player ×10
android ×6
ios ×3
audio ×2
iphone ×2
objective-c ×2
action ×1
avfoundation ×1
avplayer ×1
gfx ×1
parameters ×1
selector ×1
voice ×1
volume ×1