私はそれが行われたSubの外に "channels"変数を使用しようとしています。チュートリアルを見て、チュートリアルで言われたことと同じことをしましたが、それでも仕事はありません。VB.NET - NullReferenceException - 別のサブ変数で変数を使用する
私は文字通り午前7時のようになるまで上がっていましたが、今では頭痛を感じています。
コード:
Imports Newtonsoft.Json
Public Class Pragma
'On Application Load;
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Disable Illegal Cross Checks;
CheckForIllegalCrossThreadCalls = False
'Get the Channel Data; (Stream, Title e.t.c)
ProcessChannels.RunWorkerAsync()
End Sub
Public channels(0, 0) As String
'Process the Channel Information;
Public Sub ProcessChannels_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles ProcessChannels.DoWork
'Try to Load the Channel Data;
Try
'Connect to the Proxy Source;
Dim source As Net.HttpWebRequest = Net.WebRequest.Create("http://gameshare.io/pragma/channels.php")
'Prepare the Response;
Dim response As Net.HttpWebResponse = source.GetResponse
'Load the HTML;
Dim reader As IO.StreamReader = New IO.StreamReader(response.GetResponseStream())
Dim html As String = reader.ReadToEnd
'Convert the JSON to a Readable Array;
Dim json = JsonConvert.DeserializeObject(html)
'UK Channels Quantity;
Dim quantity As Integer = json("Quantity").ToString - 1
'UK Channels Info;
Dim channels(quantity, 1) As String
For i As Integer = 0 To quantity Step 0
For Each Row In json("Channels")
Try
'Add the Channel Title and Stream to the Multi-Dimensional Array;
channels(i, 0) = Row(i)("title").ToString
channels(i, 1) = Row(i)("stream").ToString
Catch ex As Exception
'Random Error Occured;
Console.Write("Random no reason error occured.", "ERROR")
End Try
Next
'Incremement the Row Value;
i += 1
Next
'Test;
MessageBox.Show(channels(1, 1).ToString, channels(1, 0).ToString)
Catch ex As Exception
'Channel Data couldn't be loaded;
Console.WriteLine("ERROR: Channel Data could not be Loaded! Try again later!")
End Try
End Sub
'When the user changes the Genre;
Private Sub Genres_SelectedIndexChanged(sender As Object, e As EventArgs) Handles Genres.SelectedIndexChanged
MessageBox.Show(channels(0, 0).ToString, channels(0, 0).ToString)
'Clear the Current Channels List;
ChannelsBox.Items.Clear()
'Check what Genre they chose;
Select Case Genres.Text
'If they chose Entertainment, Make the Entertainment ComboBox Visible and Enabled;
Case Is = "All Channels"
'Entertainment;
ChannelsBox.Items.Add("Comedy Central (UK)")
ChannelsBox.Items.Add("Comedy Central +1 (UK)")
ChannelsBox.Items.Add("Comedy Central Extra (UK)")
ChannelsBox.Items.Add("AMC")
ChannelsBox.Items.Add("TruTV (UK)")
ChannelsBox.Items.Add("Sky Living")
ChannelsBox.Items.Add("Sky Arts")
ChannelsBox.Items.Add("RTE One")
ChannelsBox.Items.Add("RTE Two")
ChannelsBox.Items.Add("3E")
ChannelsBox.Items.Add("TLC (UK)")
'Kids;
ChannelsBox.Items.Add("Disney XD (UK)")
ChannelsBox.Items.Add("Disney Channel (UK)")
ChannelsBox.Items.Add("Nickelodeon")
ChannelsBox.Items.Add("Nicktoons (UK)")
ChannelsBox.Items.Add("Nick Jr (UK)")
ChannelsBox.Items.Add("Nick Jr Too (UK)")
ChannelsBox.Items.Add("Disney Junior (UK)")
'Sports;
ChannelsBox.Items.Add("BT Sport 1")
ChannelsBox.Items.Add("BT Sport 2")
ChannelsBox.Items.Add("BT Sport Extra")
ChannelsBox.Items.Add("Sky Sports 1")
ChannelsBox.Items.Add("Sky Sports 2")
ChannelsBox.Items.Add("Sky Sports 3")
ChannelsBox.Items.Add("Sky Sports 4")
ChannelsBox.Items.Add("Sky Sports 5")
ChannelsBox.Items.Add("Premiere Sports")
ChannelsBox.Items.Add("Setanta Sports 1")
ChannelsBox.Items.Add("Setanta Sports Ireland")
ChannelsBox.Items.Add("ESPN")
'Movies;
ChannelsBox.Items.Add("Sky Movies Action")
ChannelsBox.Items.Add("Sky Movies Select")
ChannelsBox.Items.Add("Sky Movies Family")
ChannelsBox.Items.Add("Sky Movies Disney")
ChannelsBox.Items.Add("Sky Movies Thriller")
ChannelsBox.Items.Add("Sky Movies Comedy")
ChannelsBox.Items.Add("Sky Movies Premiere")
ChannelsBox.Items.Add("Sky Movies Showcase")
ChannelsBox.Items.Add("Sky Movies Harry Potter")
'Music;
ChannelsBox.Items.Add("Vevo 1")
ChannelsBox.Items.Add("Vevo 2")
ChannelsBox.Items.Add("Vevo 3")
'If they chose Entertainment;
Case Is = "Entertainment"
'Add only the Sports Channels;
ChannelsBox.Items.Add("Comedy Central (UK)")
ChannelsBox.Items.Add("Comedy Central +1 (UK)")
ChannelsBox.Items.Add("Comedy Central Extra (UK)")
ChannelsBox.Items.Add("AMC")
ChannelsBox.Items.Add("TruTV (UK)")
ChannelsBox.Items.Add("Sky Living")
ChannelsBox.Items.Add("Sky Arts")
ChannelsBox.Items.Add("RTE One")
ChannelsBox.Items.Add("RTE Two")
ChannelsBox.Items.Add("3E")
ChannelsBox.Items.Add("TLC (UK)")
'If they chose Kids;
Case Is = "Kids"
'Add only the Kids Channels;
ChannelsBox.Items.Add("Disney XD (UK)")
ChannelsBox.Items.Add("Disney Channel (UK)")
ChannelsBox.Items.Add("Nicktoons (UK)")
ChannelsBox.Items.Add("Nickelodeon")
ChannelsBox.Items.Add("Nick Jr (UK)")
ChannelsBox.Items.Add("Nick Jr Too (UK)")
ChannelsBox.Items.Add("Disney Junior (UK)")
'If they chose Sports;
Case Is = "Sports"
'Add only the Sports Channels;
ChannelsBox.Items.Clear()
ChannelsBox.Items.Add("BT Sport 1")
ChannelsBox.Items.Add("BT Sport 2")
ChannelsBox.Items.Add("BT Sport Extra")
ChannelsBox.Items.Add("Sky Sports 1")
ChannelsBox.Items.Add("Sky Sports 2")
ChannelsBox.Items.Add("Sky Sports 3")
ChannelsBox.Items.Add("Sky Sports 4")
ChannelsBox.Items.Add("Sky Sports 5")
ChannelsBox.Items.Add("Premiere Sports")
ChannelsBox.Items.Add("Setanta Sports 1")
ChannelsBox.Items.Add("Setanta Sports Ireland")
ChannelsBox.Items.Add("ESPN")
'If they chose Movies;
Case Is = "Movies"
'Add only the Movie Channels;
ChannelsBox.Items.Add("Sky Movies Action")
ChannelsBox.Items.Add("Sky Movies Select")
ChannelsBox.Items.Add("Sky Movies Family")
ChannelsBox.Items.Add("Sky Movies Disney")
ChannelsBox.Items.Add("Sky Movies Thriller")
ChannelsBox.Items.Add("Sky Movies Comedy")
ChannelsBox.Items.Add("Sky Movies Premiere")
ChannelsBox.Items.Add("Sky Movies Showcase")
ChannelsBox.Items.Add("Sky Movies Harry Potter")
'If they chose Music;
Case Is = "Music"
'Add only the Music Channels;
ChannelsBox.Items.Add("Vevo 1")
ChannelsBox.Items.Add("Vevo 2")
ChannelsBox.Items.Add("Vevo 3")
End Select
End Sub
'A Channel was Selected! Lets load the right Livestream;
Private Sub Channels_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ChannelsBox.SelectedIndexChanged, ChannelsBox.SelectedIndexChanged
'Play the Selected Channel In a New Thread;
BackgroundWorker1.RunWorkerAsync()
End Sub
Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
'Enable Fullscreen;
AxVLCPlugin21.FullscreenEnabled = True
'Stop and Clear whatever is currently Playing;
AxVLCPlugin21.playlist.stop()
AxVLCPlugin21.playlist.items.clear()
Select Case ChannelsBox.Text
'-- Entertainment -----------------------------------------------------------------------------
Case Is = "Comedy Central (UK)"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Comedy Central +1 (UK)"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Comedy Central Extra (UK)"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "AMC"
AxVLCPlugin21.playlist.add("http://167.114.102.27/live/sV-M4frWzTGE_6zpoqovlg/1460241688/7c52ed5b8820b7dfd90b5a784bac64b3.m3u8")
Case Is = "TruTV (UK)"
AxVLCPlugin21.playlist.add("http://llnw.live.simplestream.com/coder5/coder.channels.channel2/hls/4/playlist.m3u8")
Case Is = "Sky Living"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Sky Arts"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "RTE One"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "RTE Two"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "3E"
AxVLCPlugin21.playlist.add("http://89.163.148.31:8000/live/pierre/pierre/2836.ts")
Case Is = "TLC (UK)"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
'-- Kids ---------------------------------------------------------------------------------------
Case Is = "Disney XD (UK)"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Disney Channel (UK)"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Nickelodeon"
AxVLCPlugin21.playlist.add("http://167.114.102.27/live/gxI1pOqd03ArCE1WhsKUdg/1460241144/b11cc9ad84502b27a63fa7a8d813ef6a.m3u8")
Case Is = "Nicktoons (UK)"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Nick Jr (UK)"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Nick Jr Too (UK)"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Disney Junior (UK)"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
'-- Sports --------------------------------------------------------------------------------------
Case Is = "BT Sport 1"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "BT Sport 2"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "BT Sport Extra"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Sky Sports 1"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Sky Sports 2"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Sky Sports 3"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Sky Sports 4"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Sky Sports 5"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Premiere Sports"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Setanta Sports 1"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Setanta Sports Ireland"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "ESPN"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
'-- Movies --------------------------------------------------------------------------------------
Case Is = "Sky Movies Action"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Sky Movies Select"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Sky Movies Family"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Sky Movies Disney"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Sky Movies Thriller"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Sky Movies Comedy"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Sky Movies Premiere"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Sky Movies Showcase"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Sky Movies Harry Potter"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
Case Is = "Sony Movies"
AxVLCPlugin21.playlist.add("https://i.ytimg.com/vi/y5qYUsmZNHg/maxresdefault.jpg")
'-- Music --------------------------------------------------------------------------------------
Case Is = "Vevo 1"
AxVLCPlugin21.playlist.add("http://vevoplaylist-live.hls.adaptive.level3.net/vevo/ch1/06/prog_index.m3u8")
Case Is = "Vevo 2"
AxVLCPlugin21.playlist.add("http://vevoplaylist-live.hls.adaptive.level3.net/vevo/ch2/06/prog_index.m3u8")
Case Is = "Vevo 3"
AxVLCPlugin21.playlist.add("http://vevoplaylist-live.hls.adaptive.level3.net/vevo/ch3/06/prog_index.m3u8")
End Select
'Focus and Play the current loaded Livestream;
AxVLCPlugin21.Focus()
AxVLCPlugin21.playlist.play()
End Sub
'Mute Button;
Private Sub Mute_CheckedChanged(sender As Object, e As EventArgs) Handles Mute.CheckedChanged
'If it's Checked, Set VLC's Volume to 0, Otherwise set it to 100;
If Mute.Checked Then
AxVLCPlugin21.volume = "0"
Else
AxVLCPlugin21.volume = "100"
End If
End Sub
End Class
確かに、私がそれを作ったのと同じサブに置くとうまくいくと言うだけです。チャンネルは、http://gameshare.io/pragma/channelsからフェッチされたJSONのDeSerializingによって取得されます。PHP – ShinyMK
ローカルチャンネルとして 'channels'を宣言していますので、tjhatメソッドにのみ存在します – Plutonix
ProcessChannels_DoWork内でローカルスコープのチャンネル変数を宣言していますか?ローカル変数の名前を別のものに変更したいと思うかもしれません。混乱する可能性があります。 – bpursley