我想使用命令行使用ffmpeg.我已经在项目的files目录中保存了ffmpeg.so.但是我这样做时遇到异常.这是代码:
public class MainActivity extends Activity {
Process p;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Process p = Runtime.getRuntime().exec("/data/data/com.example.ffmpegnew/files/ffmpeg",null, new File("/data/data/com.example.ffmpegnew/files"));
}
catch(Exception e)
{
System.out.println("exception"+e);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是例外:
09-16 16:21:24.992: I/System.out(2103): exceptionjava.io.IOException: Error running exec(). Commands: [/data/data/com.example.ffmpegnew/files/ffmpeg] Working Directory: /data/data/com.example.ffmpegnew/files Environment: null
Run Code Online (Sandbox Code Playgroud)
请告诉我我在做什么样的错误.谢谢.
在其中一个布局中,我使用scrollview并想以编程方式设置其layoutMarginBottom.我可以这样做吗?这是xml文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/frameLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ScrollView
android:id="@+id/scrollView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="90.0dip"
android:layout_marginLeft="1.0dip"
android:layout_marginRight="1.0dip"
android:layout_marginTop="-2.0dip"
android:animateLayoutChanges="true"
android:fadeScrollbars="true"
android:fadingEdge="none" >
<!-- android:layout_marginBottom="60.0dip" -->
<!-- android:fillViewport="true" -->
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="visible" >
<ImageView
android:id="@+id/QuestionImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="visible" />
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/QuestionImageView"
android:fadingEdge="vertical"
android:scrollbars="vertical" />
<TextView
android:id="@+id/questionnumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:fadingEdge="vertical"
android:scrollbars="vertical" />
<TextView
android:id="@+id/question"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@id/tv"
android:fadingEdge="vertical"
android:padding="10dp"
android:scrollbars="vertical"
android:text=""
android:textColor="@color/dark_green" />
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/question" …Run Code Online (Sandbox Code Playgroud) 我正在考虑在Android上制作视频应用.我才知道,有两条著名的图书馆,FFMPEG和Vitamio.
我只是想知道我可以做简单的视频功能,比如播放视频,抓取一个帧,用两个库将视频转换成mp3吗?它们的优缺点是什么?
提前致谢.
我以编程方式设置scroolview的layoutparams时遇到异常.我已经尝试过但在执行此操作时遇到异常.这是代码:
sv = (ScrollView)findViewById(R.id.scrollView);
sv.setBackgroundColor(Color.TRANSPARENT);
ScrollView.LayoutParams layoutParams = new ScrollView.LayoutParams(
ScrollView.LayoutParams.MATCH_PARENT,
ScrollView.LayoutParams.MATCH_PARENT);
layoutParams.bottomMargin = 100;
layoutParams.setMargins(0, 0, 0, 100);
sv.setLayoutParams(layoutParams);
Run Code Online (Sandbox Code Playgroud)
这是错误日志:
09-23 12:13:20.666: E/AndroidRuntime(3284): Uncaught handler: thread main exiting due to uncaught exception
09-23 12:13:20.696: E/AndroidRuntime(3284): java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams
09-23 12:13:20.696: E/AndroidRuntime(3284): at android.widget.RelativeLayout$DependencyGraph.findRoots(RelativeLayout.java:1291)
09-23 12:13:20.696: E/AndroidRuntime(3284): at android.widget.RelativeLayout$DependencyGraph.getSortedViews(RelativeLayout.java:1238)
09-23 12:13:20.696: E/AndroidRuntime(3284): at android.widget.RelativeLayout.sortChildren(RelativeLayout.java:279)
09-23 12:13:20.696: E/AndroidRuntime(3284): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:299)
09-23 12:13:20.696: E/AndroidRuntime(3284): at android.view.View.measure(View.java:7964)
09-23 12:13:20.696: E/AndroidRuntime(3284): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:569)
09-23 12:13:20.696: E/AndroidRuntime(3284): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:361)
09-23 12:13:20.696: E/AndroidRuntime(3284): at android.view.View.measure(View.java:7964)
09-23 12:13:20.696: …Run Code Online (Sandbox Code Playgroud) 我只是想知道如何使用从方法返回的布尔值.这是返回值的方法:
public boolean hasConnection() {
ConnectivityManager cm = (ConnectivityManager) MCQ.this.getBaseContext().getSystemService(
Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifiNetwork != null && wifiNetwork.isConnectedOrConnecting()) {
return true;
}
NetworkInfo mobileNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (mobileNetwork != null && mobileNetwork.isConnectedOrConnecting()) {
return true;
}
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null && activeNetwork.isConnectedOrConnecting()) {
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
这是我想要使用此值的方法:
public void setScrollViewLayoutMarginBottom()
{
Resources resources = this.getResources();
DisplayMetrics metrics = resources.getDisplayMetrics();
Boolean b = hasConnection();
if(b == true)
{
px = 90 …Run Code Online (Sandbox Code Playgroud)