我试图找到相机的分辨率
final Parameters p = this.camera.getParameters();
List<Size> previewSizes=p.getSupportedPreviewSizes();
Run Code Online (Sandbox Code Playgroud)
并设置媒体记录器的视频大小
this.mediaRecorder.setVideoSize(previewSizes.get(0).width, previewSizes.get(0).height);
Run Code Online (Sandbox Code Playgroud)
我以前用横向模式录制视频.
MediaRecorder
无法以这种高分辨率录制视频.
当我以较低的分辨率尝试时,它正在录制.
我们设置的屏幕显示尺寸和视频尺寸是否有问题?
我尝试录制音频,只录制音频,我在Android 4.1.2上得到此错误,但在4.3上没有:
这是代码:
private void startRecord(){
on_record = true;
final boolean exists = (new File(Environment.getExternalStorageDirectory() + File.separator + NOTAY)).exists();
if (!exists) {new File(Environment.getExternalStorageDirectory() + File.separator + "Test").mkdirs();}
final boolean existAud = (new File(android.os.Environment.getExternalStorageDirectory() + File.separator + NOTAY + File.separator + "Audio")).exists();
if (!existAud) {new File(Environment.getExternalStorageDirectory() + File.separator + "Test" + File.separator + "Audio").mkdirs();}
final EditText editTitle= (EditText) findViewById(R.id.editTitle);
final String title = editTitle.getText().toString();
final String audioName = getDate(System.currentTimeMillis()).replaceAll(" ", "_");
currentAudioPath = Environment.getExternalStorageDirectory().getAbsolutePath()
+ File.separator
+ "Test"
+ File.separator
+ …
Run Code Online (Sandbox Code Playgroud) 我刚来这地方。
我在 android 中有一个应用程序,可以通过网络流式传输相机,并有一个 SurfaceView 组件来显示预览(我正在流式传输的内容)。
我想记录我在预览(surfaceview)中看到的内容而不重新打开相机,因为它刚刚从流中打开。
在棒棒糖中,我看到您可以使用 MediaRecorder api 进行录制并将视频源设置为 SURFACE。
我如何记录简单地添加一个从表面记录的新 MediaRecorder 对象。假设您已完成所有内容设置,应用程序可以正常工作并进行流式传输,并在 SurfaceView 组件中显示预览。我想定义一个新的记录器,并将源设置为表面视图。
谢谢
编辑:
您好,我尝试使用以下代码进行记录:
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mMediaRecorder.setOutputFile(getVideoFile(activity, true).getAbsolutePath());
mMediaRecorder.setVideoEncodingBitRate(10000000);
mMediaRecorder.setVideoFrameRate(30);
mMediaRecorder.setVideoSize(mVideoSize.getWidth(), mVideoSize.getHeight());
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();
int orientation = ORIENTATIONS.get(rotation);
mMediaRecorder.setOrientationHint(orientation);
mMediaRecorder.prepare();
Run Code Online (Sandbox Code Playgroud)
假设您有一个应用程序可以打开相机并流出网络并在 SurfaceView 中显示预览。我想添加一个新的媒体记录器来记录表面视图中的内容。
我一直在尝试使用Service
class 和使用Camera API
. 当我运行该应用程序时,一切似乎都运行良好。但是,当我停止服务时,我的应用程序会引发 ANR。使用DDMS tool
,我main
在按下停止录制按钮后发现了有关我的线程的以下信息:
at android.media.MediaRecorder.stop(Native Method)
at com.svtech.thirdeye.thirdeye.Services.VideoRecordingOldApiService.stopRecording(VideoRecordingOldApiService.java:212)
at com.svtech.thirdeye.thirdeye.Services.VideoRecordingOldApiService.onDestroy(VideoRecordingOldApiService.java:250)
at android.app.ActivityThread.handleStopService(ActivityThread.java:2877)
at android.app.ActivityThread.access$2000(ActivityThread.java:162)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1466)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5371)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
onDestroy()
我的Service
类的方法代码如下:
@Override
public void onDestroy() {
super.onDestroy();
if (linearLayout != null) {
windowManager.removeView(linearLayout);
linearLayout = null;
}
mMediaRecorder.stop();
if (mMediaRecorder != null) {
mMediaRecorder.reset();
mMediaRecorder.release();
mMediaRecorder = null;
}
if (mCamera != …
Run Code Online (Sandbox Code Playgroud) debugging android mediarecorder android-mediarecorder android-debug
我想在某个时间(例如5秒)后停止录制视频。
你知道怎么用MediaRecorder
吗?
我遇到了一个要求,我需要在 android 中播放媒体文件。我将发布页面的屏幕截图
实际需求是用户想要播放他的录音列表中的音频文件。录音列表通过列表适配器显示。我想在同一页面上显示音频文件的播放进度(如屏幕截图所示)。
我正在粘贴我尝试过的代码。
public class RecordingActivity extends ListActivity implements MediaPlayerControl {
MediaPlayer mMediaPlayer;
MediaController mMediaController;
Handler mHandler;
String OUTPUT_FILE;
RelativeLayout rl;
Context context = null;
Point p;
static final String[] recordings = new String[] {"Example1","Example2",
"Example3","Example4","Example5" };
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new FirstAdapter(this, recordings));
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
showPopup(RecordingActivity.this, p);
// get selected items
mMediaPlayer = new MediaPlayer();
mMediaController = new MediaController(this);
mHandler = new Handler();
mMediaController.setMediaPlayer(RecordingActivity.this); …
Run Code Online (Sandbox Code Playgroud) 我试过设置mediarecorder的视频大小(宽度,高度),但这有设备兼容性问题,在少数设备上它崩溃在mediarecorder.start();
我有一个要求,我必须录制视频并将视频保存到文件块中。如何在录制时将视频分割为多个文件而不丢失视频帧
我正在尝试使用媒体记录器在 android 中录制音频。它适用于 3gp 音频,但是当我尝试使用 aac 格式的相同代码时,它失败了。(这是我的 aac 格式代码):
final String outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + "/recording.acc";
final MediaRecorder myAudioRecorder = new MediaRecorder();
myAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
myAudioRecorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);
myAudioRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AAC_ADTS);
myAudioRecorder.setOutputFile(outputFile);
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(outputFile);
mediaPlayer.prepare();
mediaPlayer.start();
Run Code Online (Sandbox Code Playgroud)
我已经添加了权限,我正在使用按钮正确触发这些功能。我在这里只写了主要代码只是为了简单 我的问题:
以 aac 格式录制和播放声音的正确方法是什么?
使用媒体记录器和媒体播放器在 android 中录制和播放音频的最佳格式是什么,我该如何实现?我尝试使用 3gp,但它的声音质量很低。
android android-layout android-mediaplayer android-mediarecorder android-studio
有人可以把一个工作代码示例button.performClick()
分配给一个OnClickListener
.我使用的以下代码返回false为button.performClick()
-
myButton.performClick()
myButton.setOnClickListener ( new View.OnClickListener()
{
@Override
public void onClick ( View view )
{
.............
}
});
Run Code Online (Sandbox Code Playgroud)