ورود

View Full Version : مشکل این کد کجاست؟



roohola2434
پنج شنبه 02 مرداد 1393, 14:53 عصر
دوتا باتن دارم
که هردو ما رو میبره به اکتیویتی دوم و از اونجا ایفلم مربوطه پخش میشه
خب این کد اکتیویتی اول:
package com.test;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.AnimationDrawable;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.MediaController;
import android.widget.VideoView;

public class MainActivity extends Activity implements OnClickListener {
Intent i;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt1=(Button) findViewById(R.id.button1);
bt1.setOnClickListener(this);
Button bt2=(Button) findViewById(R.id.button2);
bt2.setOnClickListener(this);
i=new Intent(MainActivity.this,Secend_activity.class);

}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
i.putExtra("key", R.raw.m1);
startActivity(i);
break;
case R.id.button2:
i.putExtra("key", R.raw.m2);
startActivity(i);

break;

}


}
}


اینم اکتیویتی دوم:
package com.test;

import java.util.StringTokenizer;

import android.R.integer;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnPreparedListener;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.MediaController;
import android.widget.VideoView;

public class Secend_activity extends Activity {
int c;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_secend_activity);
Intent i=getIntent();
c=Integer.parseInt(i.getStringExtra("key"));

VideoView vid=(VideoView) findViewById(R.id.videoView1);
vid.setVideoPath("android.resource://" + getPackageName() + "/raw/"+c);
MediaController controller = new MediaController(this);

vid.setMediaController(controller);
vid.start();





}

}

roohola2434
پنج شنبه 02 مرداد 1393, 15:08 عصر
میدونم مشکل توی ارسال ادزسه ولی دزستش چیه؟
مخم رگ ب رگ شد از بس امتحان کردم
سرچ هم کردم چیزی دستم نیومد
راهنمایی کنید ممنون میشم

smemamian
پنج شنبه 02 مرداد 1393, 15:09 عصر
سلام

چه خطایی میده ؟(متن رو بذارید) Activity رو در Manifest تعریف کردید؟

roohola2434
پنج شنبه 02 مرداد 1393, 16:33 عصر
07-24 17:07:19.633: E/AndroidRuntime(9226): FATAL EXCEPTION: main
07-24 17:07:19.633: E/AndroidRuntime(9226): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test/com.test.Secend_activity}: java.lang.NumberFormatException: Invalid int: "null"
07-24 17:07:19.633: E/AndroidRuntime(9226): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2077)
07-24 17:07:19.633: E/AndroidRuntime(9226): at android.app.ActivityThread.handleLaunchActivity(Ac tivityThread.java:2104)
07-24 17:07:19.633: E/AndroidRuntime(9226): at android.app.ActivityThread.access$600(ActivityThre ad.java:134)
07-24 17:07:19.633: E/AndroidRuntime(9226): at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1247)
07-24 17:07:19.633: E/AndroidRuntime(9226): at android.os.Handler.dispatchMessage(Handler.java:99 )
07-24 17:07:19.633: E/AndroidRuntime(9226): at android.os.Looper.loop(Looper.java:154)
07-24 17:07:19.633: E/AndroidRuntime(9226): at android.app.ActivityThread.main(ActivityThread.jav a:4624)
07-24 17:07:19.633: E/AndroidRuntime(9226): at java.lang.reflect.Method.invokeNative(Native Method)
07-24 17:07:19.633: E/AndroidRuntime(9226): at java.lang.reflect.Method.invoke(Method.java:511)
07-24 17:07:19.633: E/AndroidRuntime(9226): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:809)
07-24 17:07:19.633: E/AndroidRuntime(9226): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:576)
07-24 17:07:19.633: E/AndroidRuntime(9226): at dalvik.system.NativeStart.main(Native Method)
07-24 17:07:19.633: E/AndroidRuntime(9226): Caused by: java.lang.NumberFormatException: Invalid int: "null"
07-24 17:07:19.633: E/AndroidRuntime(9226): at java.lang.Integer.invalidInt(Integer.java:138)
07-24 17:07:19.633: E/AndroidRuntime(9226): at java.lang.Integer.parseInt(Integer.java:355)
07-24 17:07:19.633: E/AndroidRuntime(9226): at java.lang.Integer.parseInt(Integer.java:332)
07-24 17:07:19.633: E/AndroidRuntime(9226): at com.test.Secend_activity.onCreate(Secend_activity. java:29)
07-24 17:07:19.633: E/AndroidRuntime(9226): at android.app.Activity.performCreate(Activity.java:4 479)
07-24 17:07:19.633: E/AndroidRuntime(9226): at android.app.Instrumentation.callActivityOnCreate(I nstrumentation.java:1050)
07-24 17:07:19.633: E/AndroidRuntime(9226): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2041)
07-24 17:07:19.633: E/AndroidRuntime(9226): ... 11 more

roohola2434
پنج شنبه 02 مرداد 1393, 16:35 عصر
فک کنم داره مقدار نال رو برمیگردونه
یعنب اون متغیرم که توش ادرس میریزم خالیه
روش دیگه ای بلدین ادرس فایل تصویری به videoview بفرستم؟

smemamian
جمعه 03 مرداد 1393, 18:35 عصر
vid.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.c));

akbar8298
جمعه 03 مرداد 1393, 19:22 عصر
دوتا باتن دارم
که هردو ما رو میبره به اکتیویتی دوم و از اونجا ایفلم مربوطه پخش میشه
خب این کد اکتیویتی اول:
package com.test;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.AnimationDrawable;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.MediaController;
import android.widget.VideoView;

public class MainActivity extends Activity implements OnClickListener {
Intent i;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt1=(Button) findViewById(R.id.button1);
bt1.setOnClickListener(this);
Button bt2=(Button) findViewById(R.id.button2);
bt2.setOnClickListener(this);
i=new Intent(MainActivity.this,Secend_activity.class);

}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
i.putExtra("key", R.raw.m1);
startActivity(i);
break;
case R.id.button2:
i.putExtra("key", R.raw.m2);
startActivity(i);

break;

}


}
}


اینم اکتیویتی دوم:
package com.test;

import java.util.StringTokenizer;

import android.R.integer;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnPreparedListener;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.MediaController;
import android.widget.VideoView;

public class Secend_activity extends Activity {
int c;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_secend_activity);
Intent i=getIntent();
c=Integer.parseInt(i.getStringExtra("key"));

VideoView vid=(VideoView) findViewById(R.id.videoView1);
vid.setVideoPath("android.resource://" + getPackageName() + "/raw/"+c);
MediaController controller = new MediaController(this);

vid.setMediaController(controller);
vid.start();





}

}





شما دارین با این خط مقدار Integer رو می فرستین
i.putExtra("key", R.raw.m1);

اما اینجا دارین بصورت String اون رو میگیرین
c=Integer.parseInt(i.getStringExtra("key"));

امیدوارم حل شده باشه

roohola2434
جمعه 03 مرداد 1393, 23:24 عصر
نه نشد
اگه امکان داره تست کن ببین چجوری میشه ادرس واسه videoview فرستاد
ممنون

saeed_g21
شنبه 04 مرداد 1393, 01:09 صبح
مثل اینکه موقع انتقال داری چیزی غیر از Int انتقال میدی چک کن ببین String ی چیزی توش نباشه

dasssnj
شنبه 04 مرداد 1393, 04:03 صبح
از getIntExtra به جای getStringExtra استفاده کن.
Integer.parseInt را هم بردار .
ببین درست میشه یا نه.

roohola2434
شنبه 04 مرداد 1393, 10:33 صبح
ممنون از جوابای قشنگتون
موقع ارسال تبدیلش کردم رشته و موقع دریافت دوباره تبدیلش کردم به عدد
الان از اون مرحله رد شدم و توی پخش مینویسه cant play this video
به نظر من مشکل در استفاده از ادرس در اکتیویتی دومه
به نظر شما مشکلش کجاست؟

roohola2434
شنبه 04 مرداد 1393, 10:37 صبح
vid.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.c));

این کد ارور میده
میشه بیشتر راهنمایی کنید؟

mohammadi1366
شنبه 04 مرداد 1393, 11:54 صبح
سلام
مشکل : can't play this video به خاطر امیولوتره شما از نسخه بالا استفاده کنید یا با گوشی که اندروید 4 هست تست کنید چون گوشی اندروید هر فرمتی رو نمی تونه پخش کنه یا ویدیو رو تبدیل کن بزار توی برنامه بعد امتحان کن

roohola2434
شنبه 04 مرداد 1393, 15:50 عصر
سلام
مشکل : can't play this video به خاطر امیولوتره شما از نسخه بالا استفاده کنید یا با گوشی که اندروید 4 هست تست کنید چون گوشی اندروید هر فرمتی رو نمی تونه پخش کنه یا ویدیو رو تبدیل کن بزار توی برنامه بعد امتحان کن

وااااایی....مرسی
ممنون
کار کرد
مشکل از امولاتور بود
حالایه سوال پیش میاد
روی همه گوشی ها جواب میده ـایا؟