PDA

View Full Version : مشکل صدا در App



Sepehr M
چهارشنبه 23 مهر 1393, 11:59 صبح
سلام دوستان...
من یه گالری ساختم یا در واقع بهتر بگم یه کتاب ساختم و یه موزیک توی پروژه م قرار دادم.... (به عنوان Background Music)
بطوریکه وقتی Application بالا میاد Track به صورت اتوماتیک شروع میکنه به خوندن...ولی وقتی گوشی رو از حالت Portrait به Landscape یا برعکس از Landscape به Portrait در میارم صدا بهم میریزه و همزمان با همون لحظه که Track در حال Play هستش دوباره خود Track شروع مینه به Play شدن....در واقع Track رو Track و همه صداها قر و قاطی میشه و همه جی بهم میریزه....کسی میتون کمک کنه؟؟؟؟ ممنون.:ناراحت:

daniel021
چهارشنبه 23 مهر 1393, 12:58 عصر
یه پوشه به نام layout-land تو پوشه res بساز و تمام xml هاتو توش کپی کن و برای حالت لنداسکیپ طراحی کن مشکلت حل میشه

Sepehr M
چهارشنبه 23 مهر 1393, 13:00 عصر
مرسی....امتحان میکنم...

Sepehr M
چهارشنبه 23 مهر 1393, 13:17 عصر
خب این که نشد....ببینید این در واقع فقط و فقط مشکلش تو صداست عکس یست که از ان طریق بخوام درستش کنم....راه حل دیگه ای دارید؟

majnoon110
چهارشنبه 23 مهر 1393, 13:50 عصر
اینطوری امتحان کن
داخلی oncreate وقتی موزیک شروع کرد به خوندن برای اولین بار
یک متغیر رو برابر true قرار بده
و باز داخل oncreate چک کن که اگر ture بود پخش نکنه
و اگر false بود پخش کنه

شاید مشکلت حل بشه
چون هر بار گوشی رو عمودی یا افقی میکنی oncreate دوباره اجرا میشه

البته اگر نشد میتونی صفحه رو یک حالته کنی.

saeed_g21
چهارشنبه 23 مهر 1393, 15:00 عصر
سلام دوستان...
من یه گالری ساختم یا در واقع بهتر بگم یه کتاب ساختم و یه موزیک توی پروژه م قرار دادم.... (به عنوان Background Music)
بطوریکه وقتی Application بالا میاد Track به صورت اتوماتیک شروع میکنه به خوندن...ولی وقتی گوشی رو از حالت Portrait به Landscape یا برعکس از Landscape به Portrait در میارم صدا بهم میریزه و همزمان با همون لحظه که Track در حال Play هستش دوباره خود Track شروع مینه به Play شدن....در واقع Track رو Track و همه صداها قر و قاطی میشه و همه جی بهم میریزه....کسی میتون کمک کنه؟؟؟؟ ممنون.:ناراحت:

کد زیر رو در خط اکتیویتی مورد نظر در فایل مانیفیست وارد نمایید
android:configChanges="keyboardHidden|orientation|screenSize"

وقتی حالت صفحه تغییر میکنه کدهای ان اکتیویتی مجددا اجرا میشه برای همین مشکل پیش میاد برای شما

majnoon110
چهارشنبه 23 مهر 1393, 16:53 عصر
دوست عزیز میشه بگید این کد دقیقا چه عملی انجام میده؟

Sepehr M
چهارشنبه 23 مهر 1393, 23:26 عصر
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="mine.work.example"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="8" />

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".ExActivity"
package="mine.work.example"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="8" />

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity

android:name=".ExActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="second"></activity>
</application>

android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="second"></activity>
</application>

</manifest>



ممنون سعید....ولی نمیدونم چرا وقتی کد رو قرار میدم Error میده....این بالا کل کدهای من در Manifest هستش....میتونی رو این کد توضییح بدی که دقیقا کجا باید قرار بگیره؟شاید من اشتباه کد رو قرار میدم.....مرسی

saeed_g21
پنج شنبه 24 مهر 1393, 00:29 صبح
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="mine.work.example"
android:versionCode="1"
android:versionName="1.0" >


<uses-sdk android:minSdkVersion="8" />


<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity android:name=".ExActivity"
android:label="@string/app_name"
android:configChanges="keyboardHidden|orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="second"
android:label="@string/app_name"
android:configChanges="keyboardHidden|orientation|screenSize">
</activity>
</application>
</manifest>


مانیفیست چرا اینقدر داغونه ؟
چرا 2تا Luncher داری ؟
چرا 2تا اکتیویتی second داری ؟

من سعی کردم fix کنم تست بزن خطای نده

فاصله ها بخاطر ادیتور سایت هست خودت دستی پاکش کن

Sepehr M
پنج شنبه 24 مهر 1393, 00:48 صبح
الان Line 26 ارور میده

Description Resource Path Location Type
Element type "activity" must be followed by either attribute specifications, ">" or "/>". AndroidManifest.xml /ex line 26 Android XML Format Problem

Sepehr M
پنج شنبه 24 مهر 1393, 00:52 صبح
خب الان Line 26 رو اوکی کردم ارورش برطرف شد ولی الان 27 و 43 داره خطا میده :| جفتش هم عین هم دیگه ان

Description Resource Path Location Type
error: Error: String types not allowed (at 'configChanges' with value 'keyboardHidden|orientation| screenSize'). AndroidManifest.xml /ex line 27 Android AAPT Problem

Sepehr M
پنج شنبه 24 مهر 1393, 01:37 صبح
124567

اینم با تصویر.....کسی میدونه؟؟؟

saeed_g21
پنج شنبه 24 مهر 1393, 01:42 صبح
بهت گفتم که فاصله افتاده اونارو دستی پاک کن:لبخند:

فاصله های بعد از | رو حذف کنی حل میشه

Sepehr M
پنج شنبه 24 مهر 1393, 01:48 صبح
124568
خب اینکارو هم کردم ولی بازم هیچ :(

saeed_g21
پنج شنبه 24 مهر 1393, 01:50 صبح
در منوی Project گزینه Clean بزن

Sepehr M
پنج شنبه 24 مهر 1393, 01:55 صبح
Clean کردم 10تا خطا دیگه هم اضاف شد :|

من الان screenSize که بعد از | گذاشته بودی رو پاک کردم اوکی شد...اما الان که رو گوشی اجراش میکنم با با تغییر گوشی صدا بهم میریزه

saeed_g21
پنج شنبه 24 مهر 1393, 01:58 صبح
screenSin نداریم که screenSize هست درستش کن بعد دوباره تست بزن

Sepehr M
پنج شنبه 24 مهر 1393, 02:00 صبح
همون screenSize منظورم بود اشتباه تایپ کردم اینجا شرمنده:لبخند:

Sepehr M
پنج شنبه 24 مهر 1393, 02:20 صبح
android:configChanges="orientation">

الان فقط همینو زدم کار کرد....گوشی هم کغییر جهت میده وضعیت اوکیه....نیازی به:
ndroid:configChanges="keyboardHidden|orientation| screenSize">
نبود دیگه......
الان اوکی شد....از همتون ممنونم....سعید از تو هم خیلی ممنونم....شرمنده اگه وقتتو گرفتم :لبخند:

Nevercom
پنج شنبه 24 مهر 1393, 05:37 صبح
این روش مشکل رو حل می کنه اما بسته به کارهایی که بعدن ممکنه انجام بدید و یا امکاناتی رو به اکتیویتی اضافه کنید، ممکنه مشکل ساز بشه.
کلاً این روش برای مدیریت تغییر ها و جلوگیری از ری استارت اکتیویتی پیشنهاد نمیشه و نهی شده.

این بلاگ پست رو بخونید: http://www.cyrilmottier.com/2014/09/25/deep-dive-into-android-state-restoration/

البته می دونم که ساده ترین روش هست و خود من هم بخاطر دم دستی بودن بارها ازش استفاده کردم، اما خواستم اشاره کنم که این روش راه حل نیست و درواقع پاک کردن صورت مسئله هست.
اگر زمانی حوصله داشتید در موردش تحقیق کنید.