بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

چرخش گوشی باعث میشه ویدئو از اول پخش بشه

مدیریت گفتگو
jafar 12 سال پیش
آخرین تغییر: 12 سال پیش

سلام

من یه ویدئو تو برناممم گذاشتم

 گوشی رو  که می چرخوننم   ویدئو دوباره از اول پخش میشه .......چی کار کنم ؟؟؟

متشکرم 

نظرات

پاسخ‌ها 7

مجتبی یگانه 12 سال پیش

علت اینه که چرخه ی اجرا ی اکتیویتی تموم میشه و از نو ساخته میشه ، یعنی همون عکسه ! onresume و ... 

حالا شما باید ما باید قبل چرخش ، تایم قعلی رو ذخیره کنیم ، بعد چرخش ست کنیم !

اما راستش من نمیدونم تو چه رویدادی ، از استاتید خواهش میشه راهنمایی کن ، مشکل منم هست

نظرات

Alireza.b 12 سال پیش

توی متد onCreate اگر دقت کرده باشین bundle ای به عنوان ورودی می گیره.

حالا کافیه شما در onCreate بعد از setContentView از if زیر استفاده کنید.

اگر برابر با null بود یعنی این بار اول است که Activity اجرا می شود، اما اگر null نبود بنابراین نباید کدهای دیگر اجرا شود.

 if(savedInstanceState != null){

} else{

}

نظرات

uncocoder 12 سال پیش
جواب منطقی است. تست کردید اطلاع بدید.
Alireza.b 12 سال پیش

 if(savedInstanceState != null){
}else{
Toast.makeText(this, "TEXT", Toast.LENGTH_SHORT).show();
}

نظرات

مجتبی یگانه 12 سال پیش

ممنون علیرضا جان 

سوالات

1- برای ذخیره ی داده ها قبل از چرخش ، درست عمل شده ؟

2 - نوع داده Boundle چیه ؟ 

3 - برای برگردوندن داده ها توی on create باید اونها رو از savedInstanceState که داریم get کنیم ؟

کد رو گذاشتم بقیه ام استفاده کنن :)

     @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        if (savedInstanceState != null)
        {
            Toast.makeText(this, "not null", Toast.LENGTH_SHORT).show();
        }
        else {
            Toast.makeText(this, "null", Toast.LENGTH_SHORT).show();
        }
    }


    @Override
    public void onSaveInstanceState(Bundle savedInstanceState) {
        super.onSaveInstanceState(savedInstanceState);
        // Save UI state changes to the savedInstanceState.
        // This bundle will be passed to onCreate if the process is
        // killed and restarted.
        savedInstanceState.putBoolean("MyBoolean", true);
        savedInstanceState.putDouble("myDouble", 1.9);
        savedInstanceState.putInt("MyInt", 1);
        savedInstanceState.putString("MyString", "Welcome back to Android");
        // etc.
    }


    @Override
    public void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        // Restore UI state from the savedInstanceState.
        // This bundle has also been passed to onCreate.
        boolean myBoolean = savedInstanceState.getBoolean("MyBoolean");
        double myDouble = savedInstanceState.getDouble("myDouble");
        int myInt = savedInstanceState.getInt("MyInt");
        String myString = savedInstanceState.getString("MyString");
    }

 

نظرات

Criss 12 سال پیش
این دستوری که اینجا زده شده _ از دستور IF واقعا فقط برای Toast استفاده شده < یعنی میشه دستور if که اینجا گذاشتید رو توی برنامه استفاده نکرد؟_ و اینکه متد هایی که برای ذخیره مقادیر ایجاد کردید؟ نباید خارج از oncreate باشه؟به این خاطر که اصلا درون oncreate ایجاد نمیشه !و اکلیپس اررور میگیره_اگر خارج از اون باشه نیاز به فراخوانی داره ؟ یا نه ؟چون وقتی خارج از oncrate ایجاد میشه اکلیپس ایرادی نمیگیره !
jafar 12 سال پیش

  •   @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            if (savedInstanceState != null)
            {
                Toast.makeText(this, "not null", Toast.LENGTH_SHORT).show();
            }
            else {
                Toast.makeText(this, "null", Toast.LENGTH_SHORT).show();
            }
            vv = (VideoView) findViewById(R.id.videoView1);
    
            ///تنظیم آدرس ویدیو 
            vv.setVideoPath("android.resource://com.example.videotest/" + R.raw.beakhkh);
            /// افزودن یک کنترلر (در تصویر آخر کارش رو نشون دادم ) 
            vv.setMediaController(new MediaController(this));
            ///شروع فیلم و درخواست فکوس 
            vv.requestFocusFromTouch();
            vv.start();
    
        }

نظرات

مجتبی یگانه 12 سال پیش
ماشالله این پست رو خیلی پر جواب کردید ، پر از خالی ، الان هنگامی که گوشی رو بچرخونید ، not null نمایش داده میشه ، یعنی شما باید توی این قسمت زمانی که ذخیره کردید رو بازگردانی کنید ، ولی راستش من هنوز با ویدئو کار نکردم !
Alireza.b 12 سال پیش
خب برادر من باید قسمت تنظیم ویدیو رو در else بزاری
مجتبی یگانه 12 سال پیش

پاسخی سوال مشابه در لینک زیر درج شد موفق باشید

لینک سوال

 

نظرات

reza.r.h 12 سال پیش

با سلام  فکر کنم از تایپ کد مقابل در manifest در   activity مورد نظر به نتیجه برسید.

android:configChanges="orientation"

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .