0% found this document useful (0 votes)
6 views4 pages

تطبيق وسائط للأطفال والإسلاميات

The document outlines a media application consisting of a server (server.py) that hosts audio and video files and an application (main.py) that provides a user interface using Kivy. It includes folder structures for media files, a Buildozer specification for generating an APK, and instructions for running the server and creating the APK. Users are advised to place media files in the specified directories and update the server IP address in the application code.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views4 pages

تطبيق وسائط للأطفال والإسلاميات

The document outlines a media application consisting of a server (server.py) that hosts audio and video files and an application (main.py) that provides a user interface using Kivy. It includes folder structures for media files, a Buildozer specification for generating an APK, and instructions for running the server and creating the APK. Users are advised to place media files in the specified directories and update the server IP address in the application code.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

### 1. **‫( كود الخادم‬server.

py)**
**‫ يستضيف الملفات ويوفر‬:**‫ الوظيفة‬API ‫للوصول إليها‬.
```python
from flask import Flask, jsonify, send_from_directory
import os

app = Flask(__name__)

# ‫مسارات المجلدات‬
KIDS_FOLDER = 'media/kids'
ISLAMIYAT_FOLDER = 'media/islamiyat'

def get_media_files(folder):
media = []
for root, dirs, files in [Link](folder):
for file in files:
if [Link](('.mp4', '.mp3')):
[Link]({
"title": [Link](file)[0],
"url": f"/{[Link](root, file)}"
})
return media

@[Link]('/kids')
def kids_api():
return jsonify(get_media_files(KIDS_FOLDER))

@[Link]('/islamiyat')
def islamiyat_api():
return jsonify(get_media_files(ISLAMIYAT_FOLDER))

@[Link]('/media/<path:filename>')
def media_files(filename):
return send_from_directory('.', filename)

if __name__ == '__main__':
[Link](host='[Link]', port=5000, debug=True)
```

---

### 2. **‫( كود التطبيق‬[Link])**


**‫ تشغيل الملفات عبر‬+ ‫ واجهة المستخدم‬:**‫ الوظيفة‬MX Player.
```python
from [Link] import Builder
from [Link] import Screen, ScreenManager
from [Link] import MDApp
from [Link] import OneLineListItem
from [Link] import MDDialog
import requests
from android import AndroidIntent

KV = '''
ScreenManager:
MainScreen:
KidsScreen:
IslamiyatScreen:

<MainScreen>:
name: 'main'
MDRectangleFlatButton:
text: "‫"مسلسالت كرتون‬
pos_hint: {'center_x':0.5, 'center_y':0.6}
on_release: [Link] = 'kids'
MDRectangleFlatButton:
text: "‫"اناشيد اسالمية‬
pos_hint: {'center_x':0.5, 'center_y':0.4}
on_release: [Link] = 'islamiyat'

<KidsScreen>:
name: 'kids'
ScrollView:
MDList:
id: kids_list

<IslamiyatScreen>:
name: 'islamiyat'
ScrollView:
MDList:
id: islamiyat_list
'''

class MainScreen(Screen):
pass

class KidsScreen(Screen):
pass

class IslamiyatScreen(Screen):
pass

class MyApp(MDApp):
def build(self):
self.server_url = "[Link] # ‫غير هذا بعنوان الخادم‬
return Builder.load_string(KV)

def on_start(self):
self.load_kids()
self.load_islamiyat()

def load_kids(self):
try:
response = [Link](f"{self.server_url}/kids")
kids_screen = [Link].get_screen('kids')
kids_screen.ids.kids_list.clear_widgets()
for item in [Link]():
kids_screen.ids.kids_list.add_widget(
OneLineListItem(
text=item['title'],
on_release=lambda x, url=item['url']: self.play_media(url)
)
)
except:
self.show_dialog("‫" يوجد اتصال بالخادم‬
‫ ال‬," ‫)"!خطأ‬

def load_islamiyat(self):
try:
response = [Link](f"{self.server_url}/islamiyat")
islamiyat_screen = [Link].get_screen('islamiyat')
islamiyat_screen.ids.islamiyat_list.clear_widgets()
for item in [Link]():
islamiyat_screen.ids.islamiyat_list.add_widget(
OneLineListItem(
text=item['title'],
on_release=lambda x, url=item['url']: self.play_media(url)
)
)
except:
self.show_dialog("‫" يوجد اتصال بالخادم‬
‫ ال‬," ‫)"!خطأ‬

def play_media(self, url):


intent = AndroidIntent()
[Link]("[Link]")
[Link](f"{self.server_url}{url}")
[Link]()

def show_dialog(self, title, text):


MDDialog(
title=title,
text=text,
buttons=[MDRectangleFlatButton(text="‫"حسنًا‬, on_release=lambda x: None)]
).open()

if __name__ == '__main__':
MyApp().run()
```

---

### 3. **‫**هيكل المجلدات‬


```
- media/
- kids/
- 1 ‫مسلسل‬/
- 1 ‫الحلقة‬.mp4
- 2 ‫الحلقة‬.mp4
- islamiyat/
- ‫أناشيد‬/
- 1 ‫نشيد‬.mp3
- ‫قرآن‬/
- ‫سورة الفاتحة‬.mp3
- [Link]
- [Link]
```

---

### 4. **‫ ملف‬Buildozer ([Link])**


**‫ توليد ملف‬:**‫ الوظيفة‬APK ‫للتطبيق‬.
```ini
[app]
title = ‫إجازتي‬
[Link] = ijazati
[Link] = [Link]
[Link] = .
source.include_exts = py,png,jpg,kv,ttf
version = 1.0
requirements = python3,kivy==2.1.0,kivymd,requests,android
orientation = portrait
osx.python_version = 3
osx.kivy_version = 2.1.0
fullscreen = 0
[Link] = INTERNET, WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE
[Link] = armeabi-v7a
[Link] = 30
[Link] = 21
[Link] = 19b
android.gradle_dependencies = '[Link]:multidex:1.0.3'
[Link] = master
```

---

### 5. **‫**خطوات التشغيل‬


1. **‫**تشغيل الخادم‬:
```bash
python [Link]
```

2. **‫ إنشاء‬APK**:
- ‫ قم بتثبيت‬Buildozer:
```bash
pip install buildozer
```
- ‫ انشئ‬APK:
```bash
buildozer android debug
```

---

### ‫مالحظات‬:
- ‫` ضع ملفات الفيديو والصوت في مجلدات‬media/`.
- ‫` في‬[Link]` ‫` غير‬[Link]` ‫ إلى‬IP ‫الخادم الفعلي‬.

You might also like