اكتشف أفضل تطبيقات Spotify التي تم تعديلها للاستمتاع بـ Spotify Premium مجانًا. قم بتنزيل Spotify ++ for iOS 18 و iOS 17 و iOS 16 و iOS 15 في عام 2024 ، لا مطلوب. هذه الإصدارات من Spotify ++ متوافقة مع جميع أجهزة iPhone و iPad.
Spotify ++ for iOS هو إصدار معدّل من Spotify المصمم لأجهزة iPhone و iPad و iPod Pro. فيما يلي أحدث قائمة محدثة لأفضل تطبيقات Spotify Tweaked لتوفير الوقت.
Spotify Tweaks Name | وصف |
---|---|
EeveeSpotify | هذا القرص يجعل Spotify يعتقد أن لديك اشتراكًا متميزًا ، مما يمنح الاستماع المجاني تمامًا مثل Spotilife. كما يوفر ميزات إضافية مثل كلمات مخصصة. |
Spotify++ | Spotify ++ for iOS هو إصدار معدّل من تطبيق بث الموسيقى الشهير المصمم لأجهزة Apple مثل iPad و iPhone. تم تطويره من قِبل المبدعين من الطرف الثالث ، يفتح هذا التطبيق الذي تم تعديله ميزات Spotify Premium بدون اشتراك ، مما يمنحك تجربة خالية من الإعلانات وتشغيل الأغاني عند الطلب. |
Spotube | Spotube هو مشغل موسيقى لنظام iOS مع دعم Spotify API. إنه بمثابة بديل لـ Spotify ، يمنح المستخدمين الوصول غير المقيد إلى مجموعة الموسيقى بأكملها في قوائم التشغيل والمكتبات الخاصة بهم. الاستفادة من API SPOTIFY's STOLUST DATA ، يتكامل spotube بسلاسة مع منصات مثل YouTube أو Piped.video أو jiosaavn ، مما يوفر بث موسيقى مجاني وخالي من الإعلانات. |
Spotilife | SpotiLife هو قرص تطبيق iOS Spotify يزيل الإعلانات ، ويزيل التخطيات المحدودة ، وإلغاء قفل كل ميزة أخرى متميزة تقريبًا. |
بدءًا من الإصدار Spotify ++ ، يعترض التطبيق طلبات Spotify لتحميل بيانات المستخدم ، وتهرب من ذلك ، وتعديل المعلمات في الوقت الفعلي. هذه الطريقة مستقرة وفعالة للغاية ، مما يسمح للمستخدمين بتحديد طريقة ترقيع قسط ديناميكي في إعدادات Spotify ++.
عند تسجيل الدخول ، يقوم Spotify بإحضار بيانات المستخدم وتخزينه في ملف offline.bnk
الموجود في دليل /Library/Application Support/PersistentCache
. يقوم بتخزين البيانات بتنسيق ثنائي الملكية ، بما في ذلك بايت طول قبل كل قيمة وغيرها من المؤتمرات. تحدد مفاتيح مثل player-license
، financial-product
، streaming-rules
، وغيرها قدرات المستخدم.
تعديل تصحيح هذا الملف أثناء التهيئة ؛ ثم يقوم Spotify بتحميله ، على افتراض أن المستخدم لديه وصول متميز. ومع ذلك ، بسبب التحديات ذات الطول الديناميكي والبايت المتنوع ، قد لا تحدث الترقيع الفعلي. يستخرج Tweak اسم المستخدم من ملف offline.bnk
الحالي ويقوم بإدراجه في premiumblank.bnk
، وهو ملف يحتوي على جميع قيم قسط مسبق مسبقًا ، ويحل offline.bnk
. إذا قام Spotify بإعادة تحميل بيانات المستخدم ، فقد يتم تحويل المستخدم إلى الخطة المجانية ، مما يؤدي إلى ظهور نافذة منبثقة مع خيارات لإعادة تشغيل التطبيق بسرعة وإعادة ضبط البيانات.
بالإضافة إلى ذلك ، يقوم Tweak بتعيين trackRowsEnabled
في SPTFreeTierArtistHubRemoteURLResolver
إلى true
، مما يتيح Spotify تحميل ليس فقط أسماء على صفحة الفنان. على الرغم من أن هذه الوظيفة يمكن أن تتوقف ، على غرار Spotilife ، فإنها تظل فعالة في أحدث إصدارات Spotify 8.9 ##. (يقوم SpotiLife أيضًا بتعديل دون offline.bnk
.
لفتح روابط Spotify في التطبيق SideLoaded ، ضمان إذن التنشيط والوصول في الإعدادات> Safari> extensions.
اكتشف Spotify ++ ، النسخة المحسنة من Spotify مصممة لأجهزة iOS. استمتع بالميزات الممتازة دون اشتراك وموسيقى خالية من الإعلانات ودفق الفيديو ، وتشغيل HD ، وأكثر من ذلك. قم بتنزيل وتثبيت Spotify ++ على جهاز iPhone أو iPad بسهولة دون كسر الحماية. ابق على اطلاع دائم بأحدث إصدارات iOS والوصول إلى المحتوى الحصري قبل أي شخص آخر.
ميزة | وصف |
---|---|
ميزات مميزة مجانًا | الوصول إلى ميزات Spotify Premium دون اشتراك ، بما في ذلك الاستماع الخالي من الإعلانات. |
تجربة خالية من الإعلانات | التخلص من الانقطاعات بدون إعلانات أثناء جلسات بث الموسيقى والفيديو. |
تشغيل HD | استمتع بجودة الصوت والفيديو المجسمة في وضع HD الكامل. |
تخطي غير محدود | تخطي المسارات دون قيود ، مما يتيح لك التحكم الكامل في قائمة تشغيل الموسيقى الخاصة بك. |
استيراد الموسيقى | استيراد مسارات بسهولة من تخزين جهازك إلى Spotify ++ ، وتوسيع مكتبة الموسيقى الخاصة بك. |
تنزيل مجاني | قم بتنزيل Spotify ++ مجانًا وتعزيز تجربة الموسيقى الخاصة بك دون أي تكلفة. |
لا حاجة إلى جيل | قم بتثبيت Spotify ++ بشكل آمن على جهاز iOS الخاص بك دون الحاجة إلى كسر الحماية. |
توافق iOS | متوافق مع iOS 15 و iOS 16 ، مما يضمن الأداء الأمثل على أحدث أجهزة Apple. |
لا خلط تجول قسري | استمع إلى موسيقاك بالترتيب الذي تفضله ، مع عدم وجود ميزة خلط ورق اللعب القسري في Spotify ++. |
تنزيل المفضلات | احفظ المسارات المفضلة للاستماع إلى وضع عدم الاتصال عن طريق تنزيلها داخل التطبيق. |
أولاً ، دعنا نحسن نموذج Song
لدينا لتضمين المزيد من الخصائص مثل fileURL
لتشغيل الصوت isPlaying
لتتبع حالة التشغيل الحالية:
struct Song {
let id : Int
let title : String
let artist : String
let album : String
let duration : Int // in seconds
let artwork : String // image name or URL
let fileURL : URL // URL to audio file
var isPlaying : Bool = false
}
بعد ذلك ، دعنا نقوم بتحديث فئة AudioPlayer
الخاصة بنا لدعم ميزات تشغيل الصوت أكثر تقدماً باستخدام AVPlayer
:
import AVFoundation
class AudioPlayer {
static let shared = AudioPlayer ( )
private var player : AVPlayer ?
private var currentSong : Song ?
func play ( song : Song ) {
if currentSong ? . id == song . id {
// If the same song is already playing, toggle play/pause
if player ? . rate == 0 {
player ? . play ( )
} else {
player ? . pause ( )
}
} else {
// Play a new song
currentSong = song
player = AVPlayer ( url : song . fileURL )
player ? . play ( )
// Update the isPlaying state of the song
song . isPlaying = true
}
}
func pause ( ) {
player ? . pause ( )
if let song = currentSong {
song . isPlaying = false
}
}
func stop ( ) {
player ? . pause ( )
player = nil
if let song = currentSong {
song . isPlaying = false
}
}
func seek ( to time : TimeInterval ) {
player ? . seek ( to : CMTime ( seconds : time , preferredTimescale : 1 ) )
}
}
الآن ، دعنا نتعزز وجهات نظرنا Swiftui لتشمل عناصر التحكم في التشغيل (Play/Pause ، Seek Bar):
import SwiftUI
import AVFoundation
struct ContentView : View {
@ State private var songs : [ Song ] = [
Song ( id : 1 , title : " Song 1 " , artist : " Artist A " , album : " Album X " , duration : 180 , artwork : " song1 " , fileURL : Bundle . main . url ( forResource : " song1 " , withExtension : " mp3 " ) ! ) ,
Song ( id : 2 , title : " Song 2 " , artist : " Artist B " , album : " Album Y " , duration : 200 , artwork : " song2 " , fileURL : Bundle . main . url ( forResource : " song2 " , withExtension : " mp3 " ) ! )
// Add more songs as needed
]
@ State private var isPlaying = false
@ State private var currentSong : Song ?
@ State private var currentTime : TimeInterval = 0
@ State private var duration : TimeInterval = 0
var body : some View {
NavigationView {
VStack {
if let song = currentSong {
VStack {
Image ( song . artwork )
. resizable ( )
. aspectRatio ( contentMode : . fit )
. frame ( width : 200 , height : 200 )
Text ( song . title )
. font ( . title )
. padding ( . top , 8 )
Text ( song . artist )
. font ( . headline )
. foregroundColor ( . gray )
. padding ( . bottom , 8 )
Text ( timeToString ( time : currentTime ) + " / " + timeToString ( time : duration ) )
. font ( . caption )
. foregroundColor ( . gray )
. padding ( . bottom , 16 )
HStack {
Button ( action : {
self . previous ( )
} ) {
Image ( systemName : " backward.fill " )
. font ( . title )
. foregroundColor ( . blue )
}
. padding ( . trailing , 40 )
Button ( action : {
self . playPause ( )
} ) {
Image ( systemName : isPlaying ? " pause.circle.fill " : " play.circle.fill " )
. font ( . system ( size : 80 ) )
. foregroundColor ( . blue )
}
Button ( action : {
self . next ( )
} ) {
Image ( systemName : " forward.fill " )
. font ( . title )
. foregroundColor ( . blue )
}
. padding ( . leading , 40 )
}
. padding ( . top , 32 )
Slider ( value : Binding (
get : { self . currentTime } ,
set : { newValue in
self . seek ( to : newValue )
}
) , in : 0 ... duration )
. padding ( . horizontal )
}
. onAppear {
self . play ( song : song )
}
} else {
Text ( " Select a song to play " )
. font ( . title )
. foregroundColor ( . gray )
}
List ( songs , id : . id ) { song in
SongRow ( song : song , isSelected : song . id == self . currentSong ? . id )
. onTapGesture {
self . currentSong = song
}
}
. navigationBarTitle ( " Music Player " )
}
}
. onReceive ( Timer . publish ( every : 1 , on : . main , in : . common ) . autoconnect ( ) ) { _ in
if self . isPlaying , let player = AudioPlayer . shared . player {
self . currentTime = player . currentTime ( ) . seconds
self . duration = player . currentItem ? . duration . seconds ?? 0
}
}
}
private func play ( song : Song ) {
AudioPlayer . shared . play ( song : song )
isPlaying = true
}
private func playPause ( ) {
if let song = currentSong {
if isPlaying {
AudioPlayer . shared . pause ( )
} else {
play ( song : song )
}
isPlaying . toggle ( )
}
}
private func seek ( to time : TimeInterval ) {
AudioPlayer . shared . seek ( to : time )
}
private func next ( ) {
guard let currentIndex = songs . firstIndex ( where : { $0 . id == currentSong ? . id } ) , currentIndex < songs . count - 1 else {
return
}
currentSong = songs [ currentIndex + 1 ]
}
private func previous ( ) {
guard let currentIndex = songs . firstIndex ( where : { $0 . id == currentSong ? . id } ) , currentIndex > 0 else {
return
}
currentSong = songs [ currentIndex - 1 ]
}
private func timeToString ( time : TimeInterval ) -> String {
let minutes = Int ( time ) / 60
let seconds = Int ( time ) % 60
return String ( format : " %02d:%02d " , minutes , seconds )
}
}
struct SongRow : View {
let song : Song
let isSelected : Bool
var body : some View {
HStack {
Image ( song . artwork )
. resizable ( )
. aspectRatio ( contentMode : . fit )
. frame ( width : 50 , height : 50 )
VStack ( alignment : . leading ) {
Text ( song . title )
. font ( . headline )
Text ( song . artist )
. font ( . subheadline )
}
Spacer ( )
if isSelected {
Image ( systemName : " speaker.fill " )
. foregroundColor ( . blue )
. padding ( . trailing , 20 )
}
}
. padding ( 8 )
}
}
iPhone 16 (القادم) ، iPhone 15 Pro Max ، iPhone 15 Pro ، iPhone 15 Plus ، iPhone 15 ، iPhone 14 Pro Max ، iPhone 14 Pro ، iPhone 14 Plus ، iPhone 14.
iPhone 13 Pro Max ، iPhone 13 Pro ، iPhone 13 Mini ، iPhone 13 ، iPhone 12 Pro Max ، iPhone 12 Pro ، iPhone 12 Mini ، iPhone 12 ، iPhone 11 Pro Max ، iPhone 11 Pro ، iPhone 11 ، iPhone XS Max ، iPhone XS ، iPhone XR ، iPhone X.
Spotify for iOS 18:
iOS 18 Beta
Spotify for iOS 17:
iOS 17.6 ، iOS 17.5.1 ، iOS 17.5 ، iOS 17.4.1 ، iOS 17.4 ، IOS 17.3.1 ، iOS 17.3 ، iOS 17.2.1 ، iOS 17.2 ، IOS 17.1.2 ، ios 17.1.1 ، IOS 17.1 ، iOS 17.0.3 ، iOS 17.0.2 ، iOS 17.0.1 ، iOS 17.
Spotify for iOS 16:
iOS 16.7.5 ، iOS 16.7.4 ، iOS 16.7.3 ، iOS 16.7.2 ، iOS 16.7.1 ، iOS 16.7 ، iOS 16.6.1 ، iOS 16.6 ، iOS 16.5.1 ، iOS 16.5 ، iOS 16.4.1 ، iOS 16.4 ، iOS 16.3.1 ، iOS 16.3 ، iOS 16.2 ، iOS 16.1.2 ، iOS 16.1.1 ، iOS 16.1 ، iOS 16.0.3 ، iOS 16.0.2 ، iOS 16.0.1 ، iOS 16.
Spotify for iOS 15:
iOS 15.8.2 ، iOS 15.8.1 ، iOS 15.8 ، iOS 15.7.9 ، iOS 15.7.8 ، iOS 15.7.7 ، iOS 15.7.6 ، iOS 15.7.5 ، iOS 15.7.4 ، iOS 15.7 .3 ، iOS 15.7.2 ، iOS 15.7.1 ، iOS 15.7 ، iOS 15.6.1 ، iOS 15.6 ، iOS 15.5 ، iOS 15.4.1 ، iOS 15.4 ، iOS 15.3.1 ، iOS 15.3 ، iOS 15.2.1 ، iOS 15.2 ، iOS 15.1.1 ، iOS 15.1 ، iOS 15.0.2 ، iOS 15.0.1 ، iOS 15.
Spotify for iOS 14:
iOS 14.8.1 ، iOS 14.8 ، iOS 14.7.1 ، iOS 14.7 ، iOS 14.6 ، iOS 14.5.1 ، iOS 14.5 ، iOS 14.4.2 ، iOS 14.4.1 ، iOS 14.4 ، iOS 14.3 ، IOS 14.2 .1 ، iOS 14.2 ، iOS 14.1 ، iOS 14.0.1 ، iOS 14.
Spotify for iOS 13:
iOS 13.7 ، iOS 13.6.1 ، iOS 13.6 ، iOS 13.5.1 ، iOS 13.5 ، iOS 13.4.1 ، iOS 13.4 ، iOS 13.3.1 ، iOS 13.3 ، iOS 13.2.3 ، iOS 13.2.2 ، iOS 13.2 ، iOS 13.1.3 ، iOS 13.1.2 ، iOS 13.1.1 ، iOS 13.1 ، iOS 13.
Spotify for iOS 12:
iOS 12.5.7 ، iOS 12.5.6 ، iOS 12.5.5 ، iOS 12.5.4 ، iOS 12.5.3 ، iOS 12.5.2 ، iOS 12.5.1 ، iOS 12.5 ، iOS 12.4.9 ، iOS 12.4 .8 ، iOS 12.4.7 ، iOS 12.4.6 ، iOS 12.4.5 ، iOS 12.4.4 ، iOS 12.4.3 ، iOS 12.4.2 ، iOS 12.4.1 ، iOS 12.4 ، iOS 12.3.2 ، iOS 12.3.1 ، IOS 12.3 ، iOS 12.2 ، iOS 12.1.4 ، iOS 12.1.3 ، iOS 12.1.2 ، iOS 12.1.1 ، iOS 12.1 ، iOS 12.0.1 ، iOS 12.
هذا المشروع مفتوح المصدر ويحكمه ترخيص معهد ماساتشوستس للتكنولوجيا. اهلا وسهلا بكم لاستخدامه وتعديله وتوزيعه في ظل الشروط الموضحة في اتفاقية الترخيص.
نحن نقدم تقديرنا الصادق للأفراد والفرق التي جعل تفاني وجهد Spotify ++ ممكنًا. كانت مساهماتهم لا تقدر بثمن: